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
你有错误吗? –