我想找到一种在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)
因此您会看到有理浮点矩阵以正确的精度打印,但是复杂矩阵不受其影响。
是错误还是功能? 有没有办法降低复数显示的精度?
答案 0 :(得分:0)
在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