我将数据存储在 CSV 中,其中第一行是字符串(列名),其余行是数字。如何将其存储到 numpy 数组中?我能找到的只是如何为列设置数据类型,而不是为行设置数据类型。
现在我只是跳过标题来进行计算,但我需要在最终版本中包含标题。但是,如果我将标题留在其中,则会将整个数组设置为字符串,并且计算会失败。
这就是我所拥有的:
data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', skip_header=1)
names=True
如果在函数中使用参数,则可以保留列名np.genfromtxt
data = np.genfromtxt(path_to_csv, dtype=float, delimiter=',', names=True)
请注意dtype=float
, 这会将您的数据转换为浮点数。这比 using 更有效dtype=None
,后者要求np.genfromtxt
为您猜测数据类型。
输出将是一个结构化数组,您可以在其中按名称访问各个列。这些名字将取自您的第一行。可能会发生一些修改,例如列名中的空格将更改为_
。该文档应涵盖您可能遇到的大多数问题。
当您说您需要最终版本中的标题时,我不确定您的意思,但是您可以生成一个结构化数组,其中列可以通过如下字符串访问:
data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', names=True)
然后使用 , 等访问data['col1_name']
列data['col2_name']
。
numpy 数组的整个想法是所有元素都是相同的类型。将标题读入 Python 列表,并将它们与数字分开管理。您还可以创建结构化数组(记录数组),在这种情况下,您可以使用标题来命名记录中的字段。在这种情况下,将它们存储在数组中将是多余的。