我是numpy的新手,但我认为不应该在numpy数组上迭代,因为这违背了numpy的目的。
我试图在numpy数组上执行elementwise操作,但我并不清楚语法:
代码:

for line in fidNNC:
    temp = line.strip().split()
    temp.insert(0,0)
    CC.append(temp[0:7])

fidNNC.close()
NNC = np.array(CC)
del(CC)

inds = np.arange(len(NNC))[ NNC[:,4]-1 == NNC[:,1] ]
NNCX = NNC[inds,:]
inds = np.arange(len(NNC))[ NNC[:,5]-1 == NNC[:,2] ]
NNCY = NNC[inds,:]

文件fidNNC包含大约一百万行和十列int。
错误消息:
    inds = np.arange(len(NNC))[ NNC[:,4]-1 == NNC[:,1] ]
TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'int'

如何在不迭代的情况下从NNC[:,4]NNC[:,5]的每个元素中减去1?
提前谢谢你,
丹尼尔

最佳答案

读取文件时未转换为int,因此创建的数组具有字符串类型。转换为int应该可以:

for line in fidNNC:
    temp = [int(i) for i in line.strip().split()]
    temp.insert(0,0)
    CC.append(temp[0:7])

10-08 14:04