gpt4 book ai didi

python - 在jupyter中打印复数矩阵更漂亮

转载 作者:行者123 更新时间:2023-12-01 08:16:38 31 4
gpt4 key购买 nike

我想找到一种方法在jupyter中更漂亮地显示复杂的numpy矩阵。pandas Dataframe 对于理性 float 来说工作得非常好。然而,当使用复数时,精度太高,因此表会扩展太多。我尝试使用 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)

因此您会看到有理浮点矩阵以正确的精度打印,但复数矩阵不受其影响。

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

最佳答案

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

关于python - 在jupyter中打印复数矩阵更漂亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54950358/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com