我有以下数据 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()
不适用于结构化数组或记录数组,大多数以前的答案仅适用于同类数组(沃伦在下面的注释中提到了例外)。
PS我不愿这样pandas
。
您可以使用np.lib.recfunctions
:
import numpy.lib.recfunctions as rfn
data = rfn.append_fields(data, ['x', 'y'], [x, y])
问题内容: 将字段添加到结构化numpy数组的最干净方法是什么?可以破坏性地完成它,还是必须创建一个新数组并在现有字段上进行复制?每个字段的内容是否连续存储在内存中,以便可以高效地进行复制? 问题答案: 如果您使用的是numpy 1.3,则还有numpy.lib.recfunctions.append_fields()。 对于许多安装,您将需要访问它。不允许一个人看到
问题内容: 我知道已经有一个关于此主题的问题(将字段添加到结构化numpy数组的最简洁方法),请参阅 将字段添加到结构化的numpy数组 但是我对那里给出的答案有疑问… 如果您使用的是numpy 1.3,那么还有numpy.lib.recfunctions.append_fields() 我仍然有numpy 1.3,但它无法识别此功能,并且在numpy的文档中也没有找到任何有关此功能的信息。函数发
问题内容: 我正在尝试向从创建的数组中添加一列。在这种情况下,它是一个数组:(行,列)。 我想添加第九列。空或零都无所谓。 问题答案: 我认为您的问题是您希望就地添加该列,但是由于存储的numpy数据的原因,它的作用是创建连接数组的副本 所以你需要保存输出: 替代方式: 我相信这三个函数(以及)之间的唯一区别是未指定when的默认行为: 假设 假设除非输入为1d,否则 如果输入为1d,则假定在添加
问题内容: 我有一个字典,需要将其转换为NumPy结构化数组。我正在使用arcpy函数,因此NumPy结构化数组是唯一可以使用的数据格式。 我已经试过了: 但我不断 下面的方法有效,但是很愚蠢,显然不适用于真实数据。我知道有一个更优雅的方法,我只是想不通。 问题答案: 您可以使用: 产量 如果您不想创建元组的中间列表,则可以改用: 在Python2中: 在Python3中: 为什么使用该列表不起作
问题内容: 如何将行添加到numpy数组? 我有一个数组A: 如果X中每行的第一个元素满足特定条件,我希望从另一个数组X向该数组添加行。 Numpy数组没有像列表那样的“追加”方法,或者看起来。 如果A和X是列表,我只会这样做: 是否有 numpythonic的 方法可以做到这一点? 谢谢,S ;-) 问题答案: 什么啊 如果它是一个二维数组,你怎么能那么其行比作一个号码:? OP评论后编辑: 从
问题内容: 我有一个形状为(X,Y)的Pandas数据框对象,如下所示: 还有一个形状为(X,Z)的numpy稀疏矩阵(CSC),看起来像这样 如何将矩阵中的内容添加到新命名列中的数据框中,以使数据框最终像这样: 请注意,数据框现在具有形状(X,Y + 1),并且矩阵中的行是数据框中的元素。 问题答案: import numpy as np import pandas as pd import s