【发布时间】:2013-10-12 01:07:42
【问题描述】:
我有以下几行代码:
import numpy as np
data = np.genfromtxt(path...,delimiter=',',dtype=None)
这将返回一个列表数组。有没有一种简单的方法可以从 csv 中获取矩阵,以便我可以使用 data[:,:3] 之类的操作来获取矩阵的前 3 列?
我已尝试 (data[1])[:3] 获取第二行的前 3 个条目,但出现以下错误:
无效索引
我真的很困惑,因为如果我只是从文件中复制第二行然后执行 (copydata)[:3] 一切正常。
所以我的问题分为两部分:
- 我可以将 csv(包含字符串和数字)作为数组导入吗?
- 为什么 (data[1])[:3] 返回无效索引
【问题讨论】:
-
我相信 data.shape 返回嵌套数组的维度。所以这里它会返回 (行数, ),因为这个数组的条目是列表而不是数组。现在我写 (stuff[1])[:3] 的信念是某事[index] 已超载。括号内的 [1] 作用于一个数组,而外的 [:3] 作用于一个列表。 (我故意这样做是因为我不认为 [1,:3] 作用于有意义的对象(由于形状的行为方式)。