我正在寻找一种简单的方法来修改其选定行的numpy结构化数组的一个字段。这是我的SWE:
import numpy as np
dt=np.dtype([('name',np.unicode,80),('x',np.float),('y',np.float)])
a=np.array( [('a',0.,0.),('b',0.,0.),('c',0.,0.) ],dtype=dt)
b=a.copy()
a[a['name']=='a']['x']=1
print a==b # return [ True True True]
在此示例中,a==b
结果应返回[False True True]
。实际上,我想从'name'字段中选择我的数组行并修改其中一个字段的值(这里'x')。
答案 0 :(得分:2)
我找到了答案......重点是场地和面具的位置。您需要将掩码应用于字段列,而不是查找掩码数组的字段:
a['x'][a['name']=='a']=1
print a==b # returns [False True True]