小编典典

将列添加到结构化的Numpy数组

python

我有以下数据 geo.dat

id  lon  lat inhab  name
 1   9.  45.   100  Ciriè
 2  10.  45.    60  Acquanegra

我得到一个 ndarray

import numpy as np
data = np.genfromtxt('geo.dat', dtype=None, names=True)

到目前为止,很好,我有一个数据结构,可以按列名进行寻址

print(data['name'][1]) #>>> Acquanegra

下一个步骤,问题-
我有一个功能,在输入有地理坐标(的两个向量data['LON']data['LAT']当然的),并返回两个阵列xy在地图上突出位置(此工程确定)。

我可以使用单独的向量xy但是我想data添加两个新列data['x']data['y']。我的天真尝试

data['x'], data['y'] = convert(data['LON'], data['LAT'])

提出了一个ValueError: no field of name x,教我data说它具有字典的某些特征,但是字典却没有。

我可以做吗?tia

请考虑这.hstack()不适用于结构化数组或记录数组,大多数以前的答案仅适用于同类数组(沃伦在下面的注释中提到了例外)。


PS我不愿这样pandas


阅读 160

收藏
2021-01-20

共1个答案

小编典典

您可以使用np.lib.recfunctions

import numpy.lib.recfunctions as rfn

data = rfn.append_fields(data, ['x', 'y'], [x, y])
2021-01-20