Python 将CSV文件作为数据表导入numpy,导致形状不正确
我试图使用numpy将CSV文件作为数据表读取,但遇到了一些问题 这是我的CSV文件,全文如下:Python 将CSV文件作为数据表导入numpy,导致形状不正确,python,csv,numpy,Python,Csv,Numpy,我试图使用numpy将CSV文件作为数据表读取,但遇到了一些问题 这是我的CSV文件,全文如下: week,count,is_successful,percent,percent_tablet,percent_desktop 1,2005,0,23,32,45 1,3805,1,18,22,55 2,1872,0,35,22,43 2,2990,1,22,21,57 3,2005,0,24,24,48 3,3805,1,27,21,52 这是我的numpy代码: data = np.genfr
week,count,is_successful,percent,percent_tablet,percent_desktop
1,2005,0,23,32,45
1,3805,1,18,22,55
2,1872,0,35,22,43
2,2990,1,22,21,57
3,2005,0,24,24,48
3,3805,1,27,21,52
这是我的numpy代码:
data = np.genfromtxt("data.csv", delimiter=',', names=True)
print data.shape
这给了我
(6,)
-它看到行,但没有列。为什么不将其作为表导入?当您命名了列时,由genfromtxt
创建的数组是一维数组。使用列名作为键访问列,例如data['week']
您可以使用view
方法获得数据的二维视图:table=data.view(np.float64)。从以下位置重塑(len(data),-1)
:
控制我们从中读取的字符串序列的主要方式
将文件转换为其他类型是为了设置dtype参数。
此参数的可接受值为:
- 单个类型,例如dtype=float。输出将是具有给定数据类型的2D,除非名称已与每个列关联
names参数的使用(见下文)。请注意,dtype=float是
genfromtxt的默认值 - 类型的序列,例如dtype=(int、float、float)
- 逗号分隔的字符串,如dtype=“i4,f8,| S3”
- 有两个键“名称”和“格式”的字典
- 元组序列(名称、类型),如dtype=[('a',int),('B',float)]
- 现有的numpy.dtype对象
- 特殊值为零。在这种情况下,列的类型将由数据本身决定(见下文)
本质上,如果数据是异构的或未指定的,则会得到一个数据类型数组。只有当它是齐次的时,你才能得到一个矩阵。你可以使用
skiprows
并将名称保留为默认值False
。这将绕过将数据组装成结构的过程
data = np.genfromtxt("data.csv", delimiter=',', skiprows=1)
print data.shape
导入pprint的功能是什么;pprint.pprint(data)
show?您的示例有6个数据行和6列,请尝试添加一行以确保您看到的内容……如果您还没有习惯于使用numpy
,我会看看:pd.read\u csv(“data.csv”)
将为您提供与您期望的内容更相似的内容。这个问题几乎是对