2017-02-16 62 views
0

我有一个名为TEMP2.csv一个.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一直在尝试一些日子,仍然我没有得到结果。我会非常赞赏你的帮助。谢谢。

+0

data的''dtype''和'shape'是什么? – hpaulj

+0

这可能会解决您的问题http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks –

+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]] 

希望这有助于。

+0

这确实帮了我很多@McGrady。你现在可以帮我一下:第一个数字是Unix时间戳。其次是其生成的其余数字的频繁程度。什么是知道它们被生成的时间的最佳方式? –

+0

@CristianJEstrada看看[转换unix时间戳字符串到可读日期](http://stackoverflow.com/questions/3682748/converting-unix-timestamp-string-to-readable-date-in-python) – McGrady

+0

我会,我也试图从第一排中获得平均数,但是它会给我意味着无法完成。 –