1

假设我在 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的做法)

另外,我注意到 IPython在打印数组时不会使用我的终端的整个宽度。numpy其他功能(例如pprint.pprint)。我该如何改变呢?

4

1 回答 1

5

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

np.set_printoptions(linewidth=150)

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

print my_matrix.astype('i')

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

np.set_printoptions(precision=3)
于 2012-12-03T02:40:02.610 回答