簡體   English   中英

按最終維度過濾NumPy數組,僅折疊倒數第二個維度

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

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