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

Ame*_*ina 1 python printing arrays 2d numpy

假设我在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.]])
Run Code Online (Sandbox Code Playgroud)

有没有办法让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 ]
Run Code Online (Sandbox Code Playgroud)

?(〜类似于MATLAB的方式)

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

tia*_*ago 5

使用numpy.set_printoptions.为了增加线宽:

np.set_printoptions(linewidth=150)
Run Code Online (Sandbox Code Playgroud)

用你需要的任何东西替换150.现在,按照你的要求打印(我想这意味着没有小数点):

print my_matrix.astype('i')
Run Code Online (Sandbox Code Playgroud)

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

np.set_printoptions(precision=3)
Run Code Online (Sandbox Code Playgroud)