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

2024-05-14 20:57:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种简单的方法来修改一个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')。你知道吗


Tags: 方法nameimportnumpytrueasnpdt
1条回答
网友
1楼 · 发布于 2024-05-14 20:57:06

我找到了答案。。。点是场和遮罩的位置。您需要将掩码应用于字段列,而不是查找掩码数组的字段:

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

相关问题 更多 >

    热门问题