首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将CSV文件读取到numpy数组,第一行为字符串,其余为浮点数

将CSV文件读取到numpy数组,第一行为字符串,其余为浮点数
EN

Stack Overflow用户
提问于 2012-09-09 11:11:20
回答 3查看 79.3K关注 0票数 31

我将数据存储在CSV中,其中第一行是字符串(列名),其余行是数字。如何将其存储到numpy数组中?我能找到的就是如何为列设置数据类型,而不是为行设置数据类型。

现在我只是跳过头来做计算,但我需要在最终版本中有头。但是如果我把头文件留在里面,整个数组就会被设置为字符串,这样计算就会失败。

这就是我所拥有的:

代码语言:javascript
复制
 data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', skip_header=1) 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-09 23:18:37

如果在函数np.genfromtxt中使用names=True参数,则可以保留列名称

代码语言:javascript
复制
 data = np.genfromtxt(path_to_csv, dtype=float, delimiter=',', names=True) 

请注意dtype=float,它会将你的数据转换成浮点型。这比使用dtype=None更有效,后者要求np.genfromtxt为您猜测数据类型。

输出将是一个结构化数组,您可以在其中按列的名称访问各个列。名字将从你的第一行中取出。可能会发生一些修改,例如,列名中的空格将更改为_documentation应该涵盖您可能遇到的大多数问题。

票数 49
EN

Stack Overflow用户

发布于 2012-09-09 16:20:31

我不知道你说在最终版本中需要头文件是什么意思,但是你可以生成一个结构化的数组,其中的列由如下的字符串访问:

代码语言:javascript
复制
data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', names=True)

然后使用data['col1_name']data['col2_name']等访问列。

票数 13
EN

Stack Overflow用户

发布于 2012-09-09 11:17:20

numpy数组的全部思想是所有元素都是相同的类型。将头文件读入Python列表,并将它们与数字分开管理。您还可以创建一个结构化数组(一组记录),在这种情况下,您可以使用头来命名记录中的字段。在这种情况下,将它们存储在数组中将是多余的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12336234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档