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

发布于 2021-01-29 15:01:37

我有以下数据 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

关注者
0
被浏览
136
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用np.lib.recfunctions

    import numpy.lib.recfunctions as rfn
    
    data = rfn.append_fields(data, ['x', 'y'], [x, y])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看