【问题标题】:printing complex number matrix in jupyter more beautiful在jupyter中打印复数矩阵更漂亮
【发布时间】:2023-03-17 23:23:01
【问题描述】:

我想找到一种方法在 jupyter 中显示更漂亮的复杂 numpy 矩阵。 pandas Dataframe 非常适合有理浮点数。但是,当使用复数时,精度太高,因此表格会扩展太多。我尝试使用set_option() 设置显示精度,但它不起作用。这是一个例子:

import numpy as np
import pandas as pd

pd.set_option("display.precision", 3)

A = np.random.rand(3,3)
df_A = pd.DataFrame(A)

B = np.random.rand(3,3)+1j*np.random.rand(3,3)
df_B = pd.DataFrame(B)

print(df_A)
print(df_B)

输出:

    0      1      2
0  0.665  0.824  0.953
1  0.341  0.078  0.408
2  0.945  0.411  0.078
                                            0  \
0    (0.2553045397887609+0.8464631779709604j)   
1  (0.5724405361700162+0.047300152111596105j)   
2     (0.5824766758024993+0.974755917539835j)   

                                           1  \
0  (0.3533797280121552+0.20515824034905894j)   
1    (0.928312255311234+0.3909443194373995j)   
2   (0.2700966337410404+0.9137483492310767j)   

                                           2  
0  (0.21748538025578568+0.7730350615682122j)  
1  (0.2435709287109903+0.46366472945887327j)  
2   (0.6531622218102532+0.5102462678094016j)

所以你看到有理浮点矩阵以正确的精度打印,但复数矩阵不受它的影响。

这是错误还是功能? 有没有办法降低复数显示的精度?

【问题讨论】:

    标签: python pandas jupyter-notebook jupyter


    【解决方案1】:

    applymap 中使用基本的字符串格式。

    df_B = df_B.applymap('{:.3f}'.format)
    df_B
                   0               1               2
    0   0.976+0.935j    0.739+0.851j    0.436+0.734j
    1   0.998+0.867j    0.774+0.849j    0.553+0.749j
    2   0.405+0.049j    0.965+0.912j    0.292+0.958j
    

    【讨论】:

    • 谢谢!这样可行。但是,将其应用于每个矩阵看起来真的很麻烦。解决这个问题真的需要for循环吗?如果有一个声明,我必须输入一次,该声明适用于我要打印的所有复杂矩阵。
    • @jay_pee_ applymap 在救援中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2023-03-27
    • 2016-11-30
    • 2021-03-06
    相关资源
    最近更新 更多