簡體   English   中英

numpy 操作“()[]”是什么意思?

[英]what does the numpy operation “()[]” mean?

l_mask = (1.0 - np.clip(20 * (l - 0.05), 0, 1))[None, ...]

“()[None,...]”是什么意思,為什么我們要這樣編碼

[None,..]向數組添加軸或維度。 m_[:, None]m_每個元素放在一個數組中。

這也稱為newaxis ,它是一個對象,可用於所有切片操作以創建長度為 1 的軸。 這也用於代替 this ,結果相同[1]

例如:

import numpy as np; 
a = np.array([[a,b],[c,d]])

然后, a[:,None]np.array([[[a, b]], [[c, d]]])

您可以查看此文檔以供參考: https : //numpy.org/doc/stable/reference/arrays.indexing.html#numpy.newaxis

該語法用於對 ndarray 進行切片。

x[(exp1, exp2, ..., expN)] 等價於 x[exp1, exp2, ..., expN]

請記住,切片元組始終可以構造為 obj 並在 x[obj] 表示法中使用。 切片對象可以在構造中代替[start:stop:step]符號使用。 例如, x[1:10:5,::-1] 也可以實現為 obj = (slice(1,10,5), slice(None,None,-1)) ; x[對象] . 這對於構建適用於任意維度數組的通用代碼非常有用。

為了更好地低估您的情況,請嘗試以下操作:

(1.0 - np.clip(20 * (l - 0.05), 0, 1))[None,:]

(1.0 - np.clip(20 * (l - 0.05), 0, 1))[:,None]

(1.0 - np.clip(20 * (l - 0.05), 0, 1))[None,None,-1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM