簡體   English   中英

帶有二維索引的numpy多維選擇器

[英]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.

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