【发布时间】:2017-07-15 04:56:01
【问题描述】:
我有两个数组 input 和 label。每个数组的大小为3x2x2x2,表示2x2x2 矩阵的3 元素。数组label 有一些
元素(我的波纹管代码中的=2)的值为零。我想将它们删除/删除到 label 数组。我还想删除数组input 中对应于label 数组中已删除索引的元素。我怎样才能在python中做到这一点?谢谢
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对象是在“数组”上建模的,即存储在内存块中的统一类型和大小的对象用于随机访问,而不是任意插入或删除。您可以做的是为“特殊”位置维护单独的索引,并在以后使用时跳过它们。
标签: python arrays python-2.7 numpy