【发布时间】:2022-10-12 21:43:56
【问题描述】:
我有一个结构化的 numpy 数组,我正在尝试就地修改它,但没有反映新值。
import numpy as np
dt = {'names':['A', 'B', 'C'],
'formats': [np.int64, np.int64, np.dtype('U8')]}
arr = np.empty(0, dtype=dt)
arr = np.append(arr, np.array([(1, 100, 'ab')], dtype = dt))
arr = np.append(arr, np.array([(2, 800, 'ax')], dtype = dt))
arr = np.append(arr, np.array([(3, 700, 'asb')], dtype = dt))
arr = np.append(arr, np.array([(4, 600, 'gdf')], dtype = dt))
arr = np.append(arr, np.array([(5, 500, 'hfg')], dtype = dt))
print(arr)
arr[arr['A'] == 1]['B'] = 555
print(arr)
甚至可以更改结构化数组中的值吗?解决方法是什么?
请不要建议 Pandas 或其他基于库的解决方案因为我只被允许在工作中使用 numpy。
【问题讨论】:
-
作为示例,您正在创建一个副本,然后对其进行修改。