【发布时间】:2017-11-14 05:29:18
【问题描述】:
我有一个从 csv 创建的数组,但第一行包含每列的标题。它必须是一个 str,但由于大多数数据是浮动的,它现在是一个 float64。
代码是创建矩阵的以下代码:
self.data = np.genfromtxt(self.path, delimiter=",")
我需要将第一行更改为字符串,但如果我使用:
self.data[0] = self.data[0].astype(str)
它返回一行“nan”,我不明白。
谢谢。
【问题讨论】:
-
numpy中不能有异构类型的数组。 -
以
objectdtype 读取,然后将第二行设置为float类型:a = np.genfromtxt(path, delimiter=",", dtype=object),a[1:] = a[1:].astype(float)? -
如果您不想将该文本行用作数组中的字段(列)名称,可以使用
skip_header参数跳过它。