【问题标题】:Print a table format of a numpy matrix打印 numpy 矩阵的表格格式
【发布时间】:2021-04-13 12:23:48
【问题描述】:

在我的一个课程项目中,我编写了单纯形算法并将输出记录在 NumPy 矩阵中,如下所示

table =
[[-1.00000000e+00  0.00000000e+00  0.00000000e+00  2.13333333e+00 0.00000000e+00  0.00000000e+00  0.00000000e+00  1.00000000e-01 6.66666667e-02  3.86666667e+00  6.00000000e+00  4.50000000e+00 0.00000000e+00  0.00000000e+00  2.42766667e+03]
 [ 3.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00 1.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00 0.00000000e+00  0.00000000e+00  0.00000000e+00  1.00000000e+00 0.00000000e+00  0.00000000e+00  4.00000000e+02]
 [ 1.00000000e+00  0.00000000e+00  1.00000000e+00 -8.00000000e+00 0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00 0.00000000e+00  8.00000000e+00 -3.00000000e+00 -3.00000000e+00 0.00000000e+00  0.00000000e+00  8.00000000e+01]
 [ 5.00000000e+00  0.00000000e+00  0.00000000e+00 -5.33333333e-01 0.00000000e+00  0.00000000e+00  1.00000000e+00  0.00000000e+00 -6.66666667e-02  5.33333333e-01 -2.00000000e-01 -2.00000000e-01 0.00000000e+00  0.00000000e+00  1.33333333e+00]
 [ 0.00000000e+00  1.00000000e+00  0.00000000e+00  4.00000000e+00 0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00 0.00000000e+00 -4.00000000e+00  2.00000000e+00  2.00000000e+00 0.00000000e+00  0.00000000e+00  1.60000000e+02]
 [ 4.00000000e+00  0.00000000e+00  0.00000000e+00  4.00000000e-01 0.00000000e+00  1.00000000e+00  0.00000000e+00 -1.00000000e-01 0.00000000e+00 -4.00000000e-01  2.00000000e-01  2.00000000e-01 0.00000000e+00  0.00000000e+00  1.10000000e+01]
 [ 1.10000000e+01  6.93889390e-18  0.00000000e+00  1.33333333e-01 0.00000000e+00  0.00000000e+00  0.00000000e+00  1.00000000e-01 6.66666667e-02 -1.33333333e-01  0.00000000e+00  0.00000000e+00 1.00000000e+00  0.00000000e+00  8.76666667e+01]
 [ 1.20000000e+01  0.00000000e+00  0.00000000e+00  4.00000000e-01 0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00 0.00000000e+00 -4.00000000e-01 -6.00000000e-01 -6.00000000e-01 0.00000000e+00  1.00000000e+00  1.60000000e+01]]

我的问题是,我怎样才能以以下格式打印这个矩阵(代表单纯形表)?

非常感谢。

【问题讨论】:

    标签: python-3.x numpy matrix tabular


    【解决方案1】:

    虽然不是一个完美的解决方案,而且维护起来肯定有点混乱,但这里有一种接近您正在寻找的方法。注意:由于懒惰,我只格式化了前 4 列和最后一列,但这应该让您了解如何处理其他列。

    def format_array(ar):
        shp = ar.shape 
        for r in range(shp[0]):
            lst = ar[r]
            print(f'{lst[0]:>6.0f} | {lst[1]:>12.6g} |  {lst[3]:>12.6g} | {lst[4]:>12.6g} | {lst[5]:<12.6g} ||{lst[14]:<12.6g}')
            if r == 0:
                print('='.rjust(80,'='))
        
    

    给定你的数组,这是上面的结果:

        -1 |            0 |       2.13333 |            0 | 0            ||2427.67     
    ================================================================================
         3 |            0 |             0 |            1 | 0            ||400         
         1 |            0 |            -8 |            0 | 0            ||80          
         5 |            0 |     -0.533333 |            0 | 0            ||1.33333     
         0 |            1 |             4 |            0 | 0            ||160         
         4 |            0 |           0.4 |            0 | 1            ||11          
        11 |  6.93889e-18 |      0.133333 |            0 | 0            ||87.6667     
        12 |            0 |           0.4 |            0 | 0            ||16          
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2012-10-01
      • 1970-01-01
      • 2011-07-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多