如何将CSV加载到IPython笔记本
我已经准备好将csv文件加载到python代码中,但是,我希望将其加载为以下格式:如何将CSV加载到IPython笔记本,python,csv,matplotlib,ipython,Python,Csv,Matplotlib,Ipython,我已经准备好将csv文件加载到python代码中,但是,我希望将其加载为以下格式: data = [[A,B,C,D], [A,B,C,D], [A,B,C,D], ] 如何加载可读的.csv文件作为numpy数组?e、 例如,简单地使用以前的教程会严重影响使用: data = np.array(data) 如果不能做到这一点,我只想上传我的csv文件(例如“dual-Cored.csv”as data=dual-Cored.csv)作为一个小例
data = [[A,B,C,D],
[A,B,C,D],
[A,B,C,D],
]
如何加载可读的.csv文件作为numpy数组?e、 例如,简单地使用以前的教程会严重影响使用:
data = np.array(data)
如果不能做到这一点,我只想上传我的csv文件(例如“dual-Cored.csv”as data=dual-Cored.csv)作为一个小例子,我有一些包含以下内容的文件
data.csv
A、 B,C,D1,2,3,4
W、 X,Y,Z
5,6,7,8 输出
[['A', 'B', 'C', 'D'],
['1', '2', '3', '4'],
['W', 'X', 'Y', 'Z'],
['5', '6', '7', '8']]
如果您的简历如下所示:
A,B,C,D
A,B,C,D
A,B,C,D
A,B,C,D
然后
将使数据
等于
[['A', 'B', 'C', 'D'],
['A', 'B', 'C', 'D'],
['A', 'B', 'C', 'D'],
['A', 'B', 'C', 'D']]
我假设你的意思是将所有数据点作为整数或浮点数 首先,我编写了一些示例数据:
with open('dual-Cored.csv', 'w') as f:
f.write('1,2,3,4\n5,6,7,8\n9,10,11,12')
现在我读回样本数据
with open('dual-Cored.csv', 'rU') as f:
c = csv.reader(f)
for l in c:
print list(map(int, l))
其中打印:
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]
我建议你仔细阅读一下这本书
要使用csv模块读入numpy阵列,请执行以下操作:
import numpy
with open('dual-Cored.csv', 'rU') as f:
c = csv.reader(f)
ar = numpy.array(list(c), dtype=int)
和ar
现在返回:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
或者直接使用numpy.genfromtxt
函数(需要指定分隔符):
返回:
array([[ 1., 2., 3., 4.],
[ 5., 6., 7., 8.],
[ 9., 10., 11., 12.]])
最简单的解决方案是:
import numpy as np
data = np.loadtxt("myfile.csv")
只要数据可转换为float
,并且每行上的列数相等,这就行了
如果某些列中的数据无法转换为
浮点
,您可以为其编写自己的转换器。请参阅numpy.loadtxt
文档。它确实非常灵活。这是可行的,但是,我希望它的形式为:[[A,B,C],[A,B,C]]。我不需要引号。@user3125347引号表示字符串;如果您的数据不是数字,则它们不是可选的。您好,我的csv文件中的数据结构与上面的examle中的数据结构完全相同。我使用你上面的代码只是用我自己的文件名替换文件名,并试图读取我的jupyter笔记本上的csv文件。它说没有这样的文件或目录“文件名”。我在这里遗漏了什么?@user3125347“numpy可读”是什么意思?这是您要求的格式,numpy当然可以处理。如果目标是numpy数组,为什么不直接使用numpy.loadtxt?@user3125347 IPython notebook从何处导入csv文件?
numpy.genfromtxt('dual-Cored.csv', delimiter=',')
array([[ 1., 2., 3., 4.],
[ 5., 6., 7., 8.],
[ 9., 10., 11., 12.]])
import numpy as np
data = np.loadtxt("myfile.csv")