Python 在使用numpy.genfromtxt创建的ndarray中插入列
我使用一个txt文件创建了一个Python 在使用numpy.genfromtxt创建的ndarray中插入列,python,arrays,numpy,numpy-dtype,Python,Arrays,Numpy,Numpy Dtype,我使用一个txt文件创建了一个ndarray。txt文件如下所示: 2505000 10.316 1.936 0.025 0 15 0 0 10.316 1.937 0.028 0 15 0 0 10.316 1.943 0.028 0 15 0 0 10.316 1.954 0.022 0 9 58 0 10.316 1.955 0.026
ndarray
。txt文件如下所示:
2505000
10.316 1.936 0.025 0 15 0 0
10.316 1.937 0.028 0 15 0 0
10.316 1.943 0.028 0 15 0 0
10.316 1.954 0.022 0 9 58 0
10.316 1.955 0.026 0 9 58 0
我正在运行以下程序读取数据:
data = np.genfromtxt(fname,
skip_header =1,
dtype = [('X','f'),('Y','f'),('Z','f'),('V', 'i'),('T', 'i')],
usecols = (0,1,2,4,5))
我现在尝试复制第4列(我称之为V
),并将其放在其后面(在最后一列T
之前)
我知道我可以通过执行
data['V']
来复制该列,但如何将该副本放置在V
和T
之间(第4列和第5列)?我看了一下,但不确定如何指定索引(参数obj
)。我尝试了numpy.insert(data\u copy,data\u copy['T'],data\u copy['V'])
,但运气不佳(我收到了indexer错误:索引61超出了大小20的限制)。您必须使用添加的字段创建一个新的dtype
,并按字段名将值从原始数组复制到新数组
recfunctions
具有执行此操作的功能(以及相关操作):
您必须使用添加的字段创建一个新的数据类型,并按字段名称将值从原始数组复制到新数组中。查看numpy.lib import recfunctions中的@hpaulj谢谢,我通过组合recfunctions.append_字段和recfunctions.drop_字段解决了这个问题,尽管我不能指定插入位置。如果没有其他的解决办法,你想把你的评论变成答案,我很乐意接受。
from numpy.lib import recfunctions