我正在尝试制作直方图,并且我一直在进行一些搜索并尝试找到正确的代码,但我尝试的所有内容都没有结束。这是我现在的代码,
import matplotlib.pyplot as plt
import numpy as np
with open('gaubg.csv') as f:
v = np.loadtxt(f, delimiter= ',', dtype="float", skiprows=1, usecols='None')
plt.hist(v, bins=100)
plt.xlabel("G-r0")
plt.ylabel('# of stars')
plt.title("Bottom half g-r0")
plt.show()
gaubg.csv
是一个csv文件,其中包含大约600,000个(浮点数,而不是int数据)数据点,这些数据点与星的颜色有关。每次我通过python运行它,这是显示
追踪(最近一次通话): 文件“gaub.py”,第5行,in v = np.loadtxt(f,delimiter =',',dtype =“float”,skiprows = 1,usecols ='None') 在loadtxt中输入文件“/sdss/ups/prd/numpy/v1_6_1/Linux/lib/python2.7/sitepackages/numpy/lib/npyio.py”,第794行 vals = [vals [i] for i in usecols] TypeError:list indices必须是整数,而不是str
我不知道这意味着什么。我一直在尝试修复代码,但我不确定如何。如果你能指出明显的错误,我将不胜感激!
答案 0 :(得分:4)
usecols= 'None'
应该是
usecols= None
或者您可以完全跳过添加usecols
参数。当你指定一个字符串numpy试图迭代每个字符时假设它是一个整数。