代码之家  ›  专栏  ›  技术社区  ›  singrium

每行不显示一行的ndarray行

  •  2
  • singrium  · 技术社区  · 7 年前

    我有这个代码:

    import numpy as np
    
    M = np.matrix([[-4.41991030e-05,-9.27712599e-04,3.75797779e-04,4.11804326e-04,1.08815444e-04],
            [-3.58432112e-04,-6.11583291e-04,1.18565910e-03,4.10337098e-04,9.96854953e-05],
            [-1.36865905e-03,1.19013259e-03,1.62785645e-03,1.85052363e-04,6.73256050e-05],
            [-0.00292639,-0.0084904,-0.00337932,-0.00014984,0.0001385]])
    
    print(M)
    

    当我运行它时,每行被分成两行,尽管终端处于全屏模式:

    enter image description here

    即使我将它保存到一个文件中,也要使用这部分代码:

    with open('file.txt', 'w') as f:
        for row in M:
            f.write(str(row))
            f.write('\n')
    

    我也有同样的问题:

    enter image description here

    我试图用不同的编辑器打开文件,但是我有相同的输出格式,所以我最终发现问题与文本编辑器无关,这就是为什么我将问题发布到这里的原因。
    这里有人知道是什么问题吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   EdChum Arthur G    7 年前

    numpy 默认情况下,将最大线条宽度设置为 75 你可以用 set_printoptions(linewidth = some_num) ,请参见 docs :

    In[17]:
    np.set_printoptions(linewidth=700)
    M = np.matrix([[-4.41991030e-05,-9.27712599e-04,3.75797779e-04,4.11804326e-04,1.08815444e-04],
            [-3.58432112e-04,-6.11583291e-04,1.18565910e-03,4.10337098e-04,9.96854953e-05],
            [-1.36865905e-03,1.19013259e-03,1.62785645e-03,1.85052363e-04,6.73256050e-05],
            [-0.00292639,-0.0084904,-0.00337932,-0.00014984,0.0001385]])
    
    print(M)
    
    [[-4.41991030e-05 -9.27712599e-04  3.75797779e-04  4.11804326e-04  1.08815444e-04]
     [-3.58432112e-04 -6.11583291e-04  1.18565910e-03  4.10337098e-04  9.96854953e-05]
     [-1.36865905e-03  1.19013259e-03  1.62785645e-03  1.85052363e-04  6.73256050e-05]
     [-2.92639000e-03 -8.49040000e-03 -3.37932000e-03 -1.49840000e-04  1.38500000e-04]]