gpt4 book ai didi

python - 操作一个 numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:25 26 4
gpt4 key购买 nike

我目前有一个大约有 350 行和 50 列的 csv 文件,我想访问其中的四列。使用 genfromtxt,我可以做到这一点。然而,一旦我有了这些列,我想添加一个基于现有列的新列(即 newcol=abs(col1-col2))。但是,当我这样做时,出现错误:数组索引过多

这是我的代码:

import numpy as np
thedata = np.genfromtxt(
'match_roughgraphs.csv',
skip_header=0,
skip_footer=0,
delimiter=',',
usecols=(3,4,29,30),
names=['hubblera','hubbledec','sloanra','sloandec'])

for row in thedata:
print(row)

b=np.empty(350,1)
b=np.absolute(thedata[:,0]-thedata[:,1]) #returns too many indices error

print(thedata[0,0]) #also returns too many indices error

print(thedata[0]) #prints out first row

根据上面的最后两行,我尝试了一个测试,我假设 genfromtxt() 正在加载 csv 文件,以便所有数据都保存在一列中,用字符串逗号分隔分隔符逗号。有关如何解决此问题的任何建议?

最佳答案

我认为您的代码不起作用的原因是 numpy.genfromtxt 返回元组的一维数组或更具体结构化的 ndarray。阅读此 numpy.genfromtxt produces array of what looks like tuples, not a 2D array—why?因此,您可以修复参数或将这些元组转换为数组,以将 thedata 作为二维数组获取。当您使用 name 参数时,它返回一个结构化的 ndarray,删除这个参数,它将返回一个二维数组。正如您在此处命名的列一样,您可以这样做

b=np.absolute(thedata['hubblera']-thedata['hubbledec'])

还有 thedata[0,0]这会返回错误,因为没有二维数组尝试执行 thedata[0][0]

关于python - 操作一个 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37570790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com