[英]numpy multi-dimensional selecton with 2D indexing
我對以下情況感到困惑:
x = np.random.rand(1, 32, 3, 64);
print(x.shape)
#(1, 32, 3, 64)
然后我應用此選擇。
y = x[np.arange(1)[:, None], :, 1, np.arange(64)[None, :]]
我認為我選擇了維度0、1、3的所有行,第二維度的1應該例外。
print(y.shape)
#(1, 64, 32)
對於以下情況:
y = x[np.arange(1)[:, None], :, [1], np.arange(64)[None, :]]
我認為我選擇了0、1維的所有行,並且始終使用2維的第一行。
print(y.shape)
#(1, 64, 32)
為什么在兩種情況下形狀都變為(1、64、32)?
1和[1]的區別是什么?
您能否為您要實現的目標提供更多背景信息? 你有什么用索引特殊原因np.arange(1)[:, None]
,而不只是:
? 例如y = x[:,:,1,:]
shape:(1,32,64)不是您要的內容嗎?
1索引與[1]索引之間的差異看起來可能是高級索引: https : //docs.scipy.org/doc/numpy/reference/arrays.indexing.html#advanced-indexing
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.