我正在尝试使用python进行一些数据操作和分析。我是python的新手,我在使用csv函数库加载数据时遇到了一些麻烦。我的代码:
import csv
out = open("data1.csv","rb")
data = csv.reader(out)
data = [row for row in data]
x = data[:,0]
产生错误:
Traceback (most recent call last):
File "/home/matthew/NumericalAnalysis.py", line 12, in <module>
x = data[:,0]
TypeError: list indices must be integers, not tuple
根据我的理解,这可能部分是由于列表被保存为字符串而不是浮点数。如果是这样,有人可以帮助我吗?
答案 0 :(得分:2)
您不能在索引中使用逗号。如果您需要来自数据或切片的元素,请按以下步骤操作:
x = data[:4]
x = data[2]
答案 1 :(得分:2)
您正在将一个元组传递给data
切片:
data[:,0]
逗号使:,0
成为一个元组,尽管这个元组无法独立存在。它是合法的Python语法,但它被称为extended slice。 Numpy为矩阵支持这些,但是常规的python列表不支持。
如果要选择所有行的所有第一个列(这是扩展切片对numpy二维矩阵的作用),请在阅读CSV时执行此操作:
data = [row[0] for row in data]
这将选择csv.reader()
对象提供的每一行的第一列。