我有兩個陣列input
和label
。每個陣列的大小爲3x2x2x2
,表示2x2x2
矩陣的3
元素。數組label
有一些 元素(=2
在我的波紋管代碼中)具有零值。我想刪除/刪除它們到label
陣列。我也想刪除數組input
中對應於label
數組中已刪除索引的元素。我怎麼能在Python中做到這一點?由於如何刪除3D矩陣中的零元素?
import numpy as np
input=np.arange(3*2*2*2).reshape(3,2,2,2)
label=np.arange(3*2*2*2).reshape(3,2,2,2)
# Assign value
label[0]=0
label[2]=0
print input
print label
#Delete element
for i in range(label.shape[0]):
if(np.sum(label[i])==0):
print i
#del label[i, :, :, :]
#Expected result: non-zero element are label[1] and input[1]
我不認爲numpy數組是您的目的最好的一種數據結構。 'numpy.ndarray'對象是在存儲在內存塊中用於隨機訪問的統一類型和大小對象的意義上對「數組」進行建模的,而不是任意插入或刪除。你可以做的是維護「特殊」位置的單獨索引,並在稍後使用時跳過它們。 –