【问题标题】:Matrix-like printing of 2D arrays in PythonPython中二维数组的矩阵式打印
【发布时间】:2012-12-03 02:11:40
【问题描述】:

假设我在 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)。我该如何改变呢?

【问题讨论】:

    标签: python arrays printing numpy 2d


    【解决方案1】:

    使用numpy.set_printoptions。增加线宽:

    np.set_printoptions(linewidth=150)
    

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

    print my_matrix.astype('i')
    

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

    np.set_printoptions(precision=3)
    

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2012-10-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2015-11-29
      • 2023-03-25
      相关资源
      最近更新 更多