我在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']
)并在地图上返回两个投影位置的数组x
和y
(这样就行了)。
我可以使用不同的向量x
和y
,但我想用data
和data['x']
这两个新列来增加data['y']
。我天真的尝试
data['x'], data['y'] = convert(data['LON'], data['LAT'])
提出了一个ValueError: no field of name x
,告诉我data
有一些字典的特征,但字典不是。
有可能按我的意愿去做吗? TIA
请注意.hstack()
不适用于结构化数组(即记录数组),大多数先前的答案仅适用于同类数组(Warren在下面的评论中提到了例外情况)。
PS我不想pandas
。
答案 0 :(得分:3)
您可以使用np.lib.recfunctions
:
import numpy.lib.recfunctions as rfn
data = rfn.append_fields(data, ['x', 'y'], [x, y])