将CSV文件读取为numpy数组,将第一行读取为字符串,将其作为float

pos*_*ich 26 python csv numpy

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

现在我只是跳过标题来进行计算,但我需要在最终版本中包含标题.但是,如果我将标题留在其中,则将整个数组设置为字符串,并且计算失败.

这就是我所拥有的:

 data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', skip_header=1) 
Run Code Online (Sandbox Code Playgroud)

Pie*_* GM 40

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

 data = np.genfromtxt(path_to_csv, dtype=float, delimiter=',', names=True) 
Run Code Online (Sandbox Code Playgroud)

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

输出将是结构化数组,您可以在其中按名称访问各列.名称将从您的第一行中获取.可能会发生一些修改,例如,列名称中的空格将更改为_.该文件应包括你可以有最多的问题.

  • 我这样做了,但它创建了一个没有列的数组。只是将整行存储在一列中 (2认同)

use*_*424 13

当你说你需要最终版本中的标题时,我不确定你的意思,但是你可以生成一个结构化数组,其中的列可以通过这样的字符串访问:

data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', names=True)
Run Code Online (Sandbox Code Playgroud)

然后访问与列data['col1_name'],data['col2_name']等等.

  • 如果需要访问它们,也可以使用`data.dtype.names`获取列名. (7认同)