Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将CSV加载到IPython笔记本_Python_Csv_Matplotlib_Ipython - Fatal编程技术网

如何将CSV加载到IPython笔记本

如何将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)作为一个小例

我已经准备好将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.csv

A、 B,C,D
1,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")