小编pra*_*gma的帖子

如何使用 genfromtxt 加载包含字符串和数字的 csv 文件?

我正在尝试在 NumPy 数组中加载一个 csv 文件以进行机器学习。到目前为止,我一直使用 int 或 float 数据,但我当前的 csv 包含 string、float 和 int,所以我在 dtype 参数方面遇到了一些麻烦。我的数据集有 41188 个样本和 8 个特征,例如:

47;"university.degree";"yes";176;1;93.994;-36.4;4.857;"no"
Run Code Online (Sandbox Code Playgroud)

我知道如果我指定 dtype=None 类型将由每列的内容确定:

data = np.genfromtxt(filename, dtype=None, delimiter=";", skip_header=1)
Run Code Online (Sandbox Code Playgroud)

但它显然不起作用。首先, genfromtxt 的结果是一个具有以下形状的 numpy ndarray:

In [2]: data.shape
Out[2]: (41188,)
Run Code Online (Sandbox Code Playgroud)

虽然我期待 (41188,8)

相反,如果我使用默认的 dtype:

data2 = np.genfromtxt(filename, delimiter=";", skip_header=1)
Run Code Online (Sandbox Code Playgroud)

我获得以下数据形状:

In [4]: data2.shape
Out[4]: (41188,8)
Run Code Online (Sandbox Code Playgroud)

其次,使用 dtype=None 我获得以下弃用警告:

VisibleDeprecationWarning: Reading unicode strings without specifying the encoding argument is deprecated. Set the encoding, use None for the system default.
Run Code Online (Sandbox Code Playgroud)

我可以通过使用来修复(是否正确?):

encoding='ASCII' …
Run Code Online (Sandbox Code Playgroud)

python numpy genfromtxt

3
推荐指数
1
解决办法
3253
查看次数

标签 统计

genfromtxt ×1

numpy ×1

python ×1