如何将csv文件加载到矩阵python

时间:2017-02-16 06:00:05

标签: python arrays csv matrix

我有一个名为TEMP2.csv的.CSV文件,其中包含以下内容:

1376460059,4,33.29,33.23,33.23,33.29,33.23,33.29,33.29,33.29,33.33,33.29,33.33,33.29,33.33,33.33,33.37,33.33,33.33,33.33,33.33,33.37,33.37,33.37,33.37

这就是我阅读文件的方式:

import csv
import numpy as np

data = np.genfromtxt('TEMP2.csv',delimiter=',', skip_header=2)

在跳过fisrt两个数字后,我需要将下面的4个数字添加到矩阵的第一行。在同一矩阵中的下一个4到第二行,依此类推。

然而,这只是不起作用,我真的很新的python已经尝试了几天仍然没有得到结果。我会非常感激你的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

也许你需要reshape。如果数组不能重新形成,则在数组的末尾添加零。

COLUMN_NUM = 4
data = np.genfromtxt('a.csv', delimiter=',')[2:]

if data.shape[0] % 4 == 0:
    print data.reshape((-1, 4))
else:
    data = np.pad(data, (0, COLUMN_NUM - len(data) % COLUMN_NUM), 'constant')
    print data.reshape((-1, COLUMN_NUM))

新形状应与原始形状兼容。因此,它会成功重塑,您将获得此结果:

[[ 33.29  33.23  33.23  33.29]
 [ 33.23  33.29  33.29  33.29]
 [ 33.33  33.29  33.33  33.29]
 [ 33.33  33.33  33.37  33.33]
 [ 33.33  33.33  33.33  33.37]
 [ 33.37  33.37  33.37  33.11]]

希望这有帮助。