繁体   English   中英

如何从numpy结构化数组修改选定行的一列

[英]How to modify one column of a selected row from a numpy structured array

我正在寻找一种简单的方法来修改它的选定行的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] 。实际上,我想从“名称”字段中选择数组的行并修改其中一个字段的值(此处为“ x” )。

我找到了答案……重点是视野和掩模的位置。 您需要将掩码应用于字段列,而不要查找被掩码数组的字段:

a['x'][a['name']=='a']=1
print a==b # returns [False  True  True]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM