1
這裏比較新的python。用numpy創建矩陣CSV文件
所以我有內容的這樣一個CSV文件:
dsa dds fsdf dasdsa
1 1 32.2 9 4
1 2 53.2 8 2
1 3 44.2 0 1
1 4 12.3 3 2
1 5 15.6 4 3
2 1 12.3 3 2
2 2 91.3 4 11
2 3 32.3 5 33
2 4 44.2 3 2
2 5 55.2 4 1
3 1 60.2 4 2
3 2 80.2 1 15
3 3 10.2 4 1
3 4 99.2 8 3
3 5 13.1 10 2
4 1 32.3 19 2
4 2 10.3 12 3
4 3 52.3 22 4
. . . . .
. . . . .
我希望我的輸出是這樣的:
1 2 3 4 . . .
1 32.2 53.2 44.2 12.3 . .
2 12.3 91.3 32.3 44.2 . .
3 60.2 80.2 10.2 99.2 . .
4 32.3 10.3 52.3 . . .
. . . . . . .
. . . . . . .
正如你所看到的,我只使用第一csv文件的3列,我跳過了第一行(垃圾數據)。
我想使用numpy的做到這一點,所以我想這個代碼會做的伎倆:
from scipy.sparse import coo_matrix
import numpy as np
l, c, v = np.load('test.csv', skiprows=1, delimiter=',').T[:3,:]
m = coo_matrix((v, (l-1, c-1)), shape=(l.max(), c.max()))
print(m.toarray())
這工作,但是在CSV文件中的第2列被排除在輸出。結果原來是:
[32.2 53.2 44.2 12.3
12.3 91.3 32.3 44.2
60.2 80.2 10.2 99.2
32.3 10.3 52.3 .]
我如何能生成我需要(輸出)的矩陣有什麼想法? CSV文件很大(它有大約10k行和列),但只需要使用前3列。
謝謝堆!
什麼了發生的代碼,如果沒有 '垃圾' 數據存在? – ynitSed
只需安裝熊貓,我有anaconda 3.5,但我的python版本是3.4.4。有區別嗎? – ynitSed
你有錯誤嗎? –