1

我正在尝试使用 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

据我了解,这可能部分是由于列表被保存为字符串而不是浮点数。如果是这样,有人可以帮助我吗?

4

2 回答 2

2

您不能在索引中使用逗号。如果您想要数据中的元素或切片,请执行以下操作:

x = data[:4]
x = data[2]
于 2013-06-06T20:51:27.040 回答
2

您正在将一个元组传递给data切片:

data[:,0]

逗号构成:,0一个元组,尽管它不能独立存在。它是合法的 Python 语法,但它被称为扩展切片。Numpy 支持这些矩阵,但常规 python 列表不支持。

如果您想选择所有行的所有第一列(这是扩展切片对 numpy 二维矩阵所做的),请在读取 CSV 时执行此操作:

data = [row[0] for row in data]

csv.reader()这将选择对象提供的每一行的第一列。

于 2013-06-06T20:53:57.273 回答