我不确定你的matrix
来自哪里,以及为什么矩阵和数字的组合,但我会尝试处理它。
为了便于复制粘贴,我将定义matrix
(我已将numpy加载为np
)。我在一家IPython的会话工作:
In [373]: matrix=np.matrix
In [375]: alist=[matrix([[ 1421]]), 7, matrix([[ 1184]]), 3, matrix([[ 925]]), 2, matrix([[ 1077]]), 4]
In [376]: alist
Out[376]:
[matrix([[1421]]),
7,
matrix([[1184]]),
3,
matrix([[925]]),
2,
matrix([[1077]]),
4]
我会通过与ifelse
表达,它可以提取矩阵元素列表理解运行它。我也可以这样来定义一个简单的辅助功能斯图尔特那样:
In [379]: newlist=[x[0,0] if isinstance(x,np.matrix) else x for x in alist]
In [380]: newlist
Out[380]: [1421, 7, 1184, 3, 925, 2, 1077, 4]
现在把它变成一个数组 - 并使用重塑,使其2行。
In [381]: Marray=np.array(newlist).reshape(2,-1)
In [382]: Marray
Out[382]:
array([[1421, 7, 1184, 3],
[ 925, 2, 1077, 4]])
np.savetxt
是numpy
函数写csv
样式文件:
In [386]: np.savetxt('test.txt',Marray)
In [387]: cat test.txt
1.421000000000000000e+03 7.000000000000000000e+00 1.184000000000000000e+03 3.000000000000000000e+00
9.250000000000000000e+02 2.000000000000000000e+00 1.077000000000000000e+03 4.000000000000000000e+00
哎呀,默认格式为浮动;改变为整数:
In [388]: np.savetxt('test.txt',Marray, '%d')
,并期待在生成的文件(就像在Linux壳做cat
)
In [389]: cat test.txt
1421 7 1184 3
925 2 1077 4
并用标题行:
In [392]: np.savetxt('test.txt',Marray, '%d',header='MSEa Ca MSEb Cb')
In [393]: cat test.txt
# MSEa Ca MSEb Cb
1421 7 1184 3
925 2 1077 4
格式可以被提炼,但是那给了想法。
列表* *有方括号'[]' - 这就是列表。我并不完全确定你需要矩阵,但我不熟悉你的问题空间 –
可能最好不要使用混合数组和矩阵,因为它们有不同的语义。 – karakfa