0

我正在尝试制作直方图,并且一直在进行一些搜索并尝试找到正确的代码,但是我尝试的所有方法最终都不起作用。这是我现在的代码,

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 个(浮点数,而不是整数)数据点,这些数据点与星星的颜色有关。每次我通过 python 运行它时,这是显示的错误消息

回溯(最后一次调用):文件“gaub.py”,第 5 行,在 v = np.loadtxt(f, delimiter= ',', dtype="float", skiprows=1, usecols='None') 文件中“/sdss/ups/prd/numpy/v1_6_1/Linux/lib/python2.7/sitepackages/numpy/lib/npyio.py”,第 794 行,在 loadtxt vals = [vals[i] for i in usecols] 类型错误:列表索引必须是整数,而不是 str

我不知道那是什么意思。我一直在尝试修复代码,但我不确定如何。如果您能指出明显的错误,我将不胜感激!

4

1 回答 1

4
usecols= 'None' 

应该

usecols= None

或者您可以完全跳过添加usecols参数。当您指定一个字符串时,numpy 尝试遍历每个字符,并假设它是一个整数。

于 2012-07-12T18:58:52.957 回答