【问题标题】:Python genfromtext using CSV file to generate 2D arrayPython genfromtext 使用 CSV 文件生成二维数组
【发布时间】:2017-07-19 10:59:43
【问题描述】:

我是 Python 新手。 我正在尝试将 CSV 文件转换为二维数组,以便能够进一步分析数据集。

这是我的数据集:

1;1;356;3.3;3.9
1;2;403;3.9;4.0
1;3;370;5.0;2.6
1;4;386;6.9;2.1
2;1;511;4.1;2.5
2;2;488;3.5;2.0
2;3;568;4.6;2.1
2;4;562;5.2;1.8
2;5;478;5.4;2.1
3;1;415;6.5;2.1
3;2;418;5.9;1.8
3;3;388;8.3;3.0

我正在使用

np.genfromtxt(fname, delimiter=';')

但输出是

[[   1.     1.   356.     3.3    3.9]
 [   1.     2.   403.     3.9    4. ]
 [   1.     3.   370.     5.     2.6]...

我如何使用genfromtxt 为我生成一个二维数组,以便np.shape() 可以得到 16,5。

【问题讨论】:

  • 你的输出 2D of shape (16,5),还是我在这里遗漏了什么?

标签: python arrays python-3.x csv numpy


【解决方案1】:

如您所料,您的代码的结果是一个二维数组。似乎您正在打印结果,这就是 __string__ 方法是如何为二维数组设计的以删除分隔符。相反,您可以在终端中键入数组名称,以便它调用 __repr__ 方法。它将为您提供更真实的数组表示。

In [23]: arr = np.genfromtxt('a.txt', delimiter=';')

In [24]: arr.shape
Out[24]: (12, 5)

In [25]: print(arr)
[[   1.     1.   356.     3.3    3.9]
 [   1.     2.   403.     3.9    4. ]
 [   1.     3.   370.     5.     2.6]
 [   1.     4.   386.     6.9    2.1]
 [   2.     1.   511.     4.1    2.5]
 [   2.     2.   488.     3.5    2. ]
 [   2.     3.   568.     4.6    2.1]
 [   2.     4.   562.     5.2    1.8]
 [   2.     5.   478.     5.4    2.1]
 [   3.     1.   415.     6.5    2.1]
 [   3.     2.   418.     5.9    1.8]
 [   3.     3.   388.     8.3    3. ]]

In [26]: arr
Out[26]: 
array([[   1. ,    1. ,  356. ,    3.3,    3.9],
       [   1. ,    2. ,  403. ,    3.9,    4. ],
       [   1. ,    3. ,  370. ,    5. ,    2.6],
       [   1. ,    4. ,  386. ,    6.9,    2.1],
       [   2. ,    1. ,  511. ,    4.1,    2.5],
       [   2. ,    2. ,  488. ,    3.5,    2. ],
       [   2. ,    3. ,  568. ,    4.6,    2.1],
       [   2. ,    4. ,  562. ,    5.2,    1.8],
       [   2. ,    5. ,  478. ,    5.4,    2.1],
       [   3. ,    1. ,  415. ,    6.5,    2.1],
       [   3. ,    2. ,  418. ,    5.9,    1.8],
       [   3. ,    3. ,  388. ,    8.3,    3. ]])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2018-03-08
    • 2014-09-13
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    相关资源
    最近更新 更多