[英]Filter a NumPy array by the final dimension, collapsing only the second to last dimension
我非常困惑地與這個問題作斗爭,即使它非常簡單:
我有一個numpy數組a
其中a.shape == (16,4,1000,60)
當a[:,:,:,5] == x
時,我真的不喜歡它
我想刪除所有上述內容,以生成b
其中b.shape == (16,4,k,60)
,其中k
是未知但恆定的數字。
a[0,0,:,5] == x
的索引不一定與a[0,1,:,5] == x
的索引相同,但總是有k
索引。
有任何想法嗎? 謝謝!
編輯:我剛剛發現,如果我這樣做:
b = a[a[:,:,:,5] == x]
k = b.size / (16*4*60)
b = b.reshape([16,4,k,60])
b.shape # e.g. (16,4,3,60)
它可以工作,但這似乎不是一個很好的解決方案。 有沒有辦法明確保留尺寸?
代替b = b.reshape([16,4,k,60])
只是做一個b = b.reshape((16,4,-1,60))
。 numpy
將為您找出隱式維度。
一個形狀尺寸只能是-1。 在這種情況下,該值是根據數組的總大小和其他維度來推斷的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.