非常简单的问题:我有一个具有多个列的结构化数组,我只想用另一个预先存在的数组填充其中的一部分(但不止一个)。numpy:如何一次填充结构化数组中的多个字段
这就是我想:
strc = np.zeros(4, dtype=[('x', int), ('y', int), ('z', int)])
x = np.array([2, 3])
strc[['x', 'y']][0] = x
这给了我这个未来的警告:
主要:1:FutureWarning:numpy的检测到您(可能)写通过numpy.diagonal或通过在记录 阵列中选择多个字段返回的数组 。此代码会在将来的版本numpy的突破可能性 - 详见numpy.diagonal或arrays.indexing参考文档。 快速修复是制作一个明确的副本(例如,做 arr.diagonal()。copy()或arr [['f0','f1']]。copy())。
但即使这是一个警告,结构化数组不会被填充。到目前为止,我遍历两个数组超过和它的作品,但我想这是非常低效的。有没有更好的办法?
http://stackoverflow.com/questions/3058602/python-numpy-structured-array-recarray-assigning - 值 - 到 - 切片指出,试图索引几个领域会产生一个副本,而不是一个视图。如果您正在使用比场更行的工作,有什么不对迭代领域。 – hpaulj