2017-02-16 35 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

我會,我也試圖從第一排中獲得平均數,但是它會給我意味着無法完成。 –