我将数据存储在CSV中,其中第一行是字符串(列名),其余行是数字。如何将其存储到numpy数组中?我能找到的就是如何为列设置数据类型,而不是为行设置数据类型。
现在我只是跳过头来做计算,但我需要在最终版本中有头。但是如果我把头文件留在里面,整个数组就会被设置为字符串,这样计算就会失败。
这就是我所拥有的:
data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', skip_header=1)
发布于 2012-09-09 23:18:37
如果在函数np.genfromtxt
中使用names=True
参数,则可以保留列名称
data = np.genfromtxt(path_to_csv, dtype=float, delimiter=',', names=True)
请注意dtype=float
,它会将你的数据转换成浮点型。这比使用dtype=None
更有效,后者要求np.genfromtxt
为您猜测数据类型。
输出将是一个结构化数组,您可以在其中按列的名称访问各个列。名字将从你的第一行中取出。可能会发生一些修改,例如,列名中的空格将更改为_
。documentation应该涵盖您可能遇到的大多数问题。
发布于 2012-09-09 16:20:31
我不知道你说在最终版本中需要头文件是什么意思,但是你可以生成一个结构化的数组,其中的列由如下的字符串访问:
data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', names=True)
然后使用data['col1_name']
、data['col2_name']
等访问列。
发布于 2012-09-09 11:17:20
numpy数组的全部思想是所有元素都是相同的类型。将头文件读入Python列表,并将它们与数字分开管理。您还可以创建一个结构化数组(一组记录),在这种情况下,您可以使用头来命名记录中的字段。在这种情况下,将它们存储在数组中将是多余的。
https://stackoverflow.com/questions/12336234
复制相似问题