Python中二维数组的矩阵式打印

时间:2012-12-03 02:11:40

标签: python arrays printing numpy 2d

说我在Python中的numpy数组中有一个矩阵

In [3]: my_matrix
Out[3]: 
array([[ 2.,  2.,  2.,  2.,  2.,  2.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  2.,  2.,  2.,  2.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  2.,  2.,  2.,
         2.,  2.,  2.,  2.,  2.]])

有没有办法让Python / IPython将我的数组打印为:

[ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2; 
  0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0; 
  0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 ]

? (〜类似于MATLAB的方式)

另外,我注意到在打印numpy数组时,IPython 使用终端的全宽。其他功能(例如pprint.pprint)。我怎么能改变它?

1 个答案:

答案 0 :(得分:5)

使用numpy.set_printoptions。用于增加线宽:

np.set_printoptions(linewidth=150)

根据您的需要替换150。现在,按照你的要求进行打印(我想这意味着没有小数点):

print my_matrix.astype('i')

如果您有浮点值,您还可以使用选项precision来控制打印输出的精度:

np.set_printoptions(precision=3)