我有以下数据 geo.dat
geo.dat
id lon lat inhab name 1 9. 45. 100 Ciriè 2 10. 45. 60 Acquanegra
我得到一个 ndarray
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在地图上突出位置(此工程确定)。
data['LON']
data['LAT']
x
y
我可以使用单独的向量x,y但是我想data添加两个新列data['x']和data['y']。我的天真尝试
data
data['x']
data['y']
data['x'], data['y'] = convert(data['LON'], data['LAT'])
提出了一个ValueError: no field of name x,教我data说它具有字典的某些特征,但是字典却没有。
ValueError: no field of name x
我可以做吗?tia
请考虑这.hstack()不适用于结构化数组或记录数组,大多数以前的答案仅适用于同类数组(沃伦在下面的注释中提到了例外)。
.hstack()
PS我不愿这样pandas。
pandas
您可以使用np.lib.recfunctions:
np.lib.recfunctions
import numpy.lib.recfunctions as rfn data = rfn.append_fields(data, ['x', 'y'], [x, y])