通过将所有元素置于右列作为矩阵的打印数组

问题描述 投票:1回答:1

我正在尝试将数据框打印为矩阵。为此,我想使用一个数组。要清楚:

我有字典,Y,就像这样:

{(0, 0): {(0, 0): 0, (1, 0): 1, (0, 1): 1, (0, 2): 2, (0, 3): 3, (1, 3): 4, (0, 4): 10, (1, 4): 9, (0, 5): 11, (1, 1): 2, (1, 2): 5, (2, 2): 6, (2, 4): 8, (1, 5): 10, (2, 0): 10, (3, 0): 9, (2, 1): 7, (3, 1): 8, (3, 2): 7, (2, 3): 7, (3, 4): 9, (2, 5): 9, (3, 5): 10, (3, 3): 8}, (1, 0): {(1, 0): 0, (0, 0): 1, (1, 1): 1, (0, 1): 2, (0, 2): 3, (0, 3): 4, (1, 3): 5, (0, 4): 11, (1, 4): 10, (0, 5): 12, (1, 2): 6, (2, 2): 7, (2, 4): 9, (1, 5): 11, (2, 0): 11, (3, 0): 10, (2, 1): 8, (3, 1): 9, (3, 2): 8, (2, 3): 8, (3, 4): 10, (2, 5): 10, (3, 5): 11, (3, 3): 9}, (0, 1): {(0, 1): 0, (0, 0): 1, (0, 2): 1, (1, 0): 2, (0, 3): 2, (1, 3): 3, (0, 4): 9, (1, 4): 8, (0, 5): 10, (1, 1): 3, (1, 2): 4, (2, 2): 5, (2, 4): 7, (1, 5): 9, (2, 0): 9, (3, 0): 8, (2, 1): 6, (3, 1): 7, (3, 2): 6, (2, 3): 6, (3, 4): 8, (2, 5): 8, (3, 5): 9, (3, 3): 7}, (0, 2): {(0, 2): 0, (0, 1): 1, (0, 3): 1, (0, 0): 2, (1, 0): 3, (1, 3): 2, (0, 4): 8, (1, 4): 7, (0, 5): 9, (1, 1): 4, (1, 2): 3, (2, 2): 4, (2, 4): 6, (1, 5): 8, (2, 0): 8, (3, 0): 7, (2, 1): 5, (3, 1): 6, (3, 2): 5, (2, 3): 5, (3, 4): 7, (2, 5): 7, (3, 5): 8, (3, 3): 6}, (0, 3): {(0, 3): 0, (0, 2): 1, (1, 3): 1, (0, 0): 3, (1, 0): 4, (0, 1): 2, (0, 4): 7, (1, 4): 6, (0, 5): 8, (1, 1): 5, (1, 2): 2, (2, 2): 3, (2, 4): 5, (1, 5): 7, (2, 0): 7, (3, 0): 6, (2, 1): 4, (3, 1): 5, (3, 2): 4, (2, 3): 4, (3, 4): 6, (2, 5): 6, (3, 5): 7, (3, 3): 5}, (1, 3): {(1, 3): 0, (0, 3): 1, (1, 2): 1, (0, 0): 4, (1, 0): 5, (0, 1): 3, (0, 2): 2, (0, 4): 6, (1, 4): 5, (0, 5): 7, (1, 1): 6, (2, 2): 2, (2, 4): 4, (1, 5): 6, (2, 0): 6, (3, 0): 5, (2, 1): 3, (3, 1): 4, (3, 2): 3, (2, 3): 3, (3, 4): 5, (2, 5): 5, (3, 5): 6, (3, 3): 4}, (0, 4): {(0, 4): 0, (1, 4): 1, (0, 5): 1, (0, 0): 10, (1, 0): 11, (0, 1): 9, (0, 2): 8, (0, 3): 7, (1, 3): 6, (1, 1): 12, (1, 2): 5, (2, 2): 4, (2, 4): 2, (1, 5): 2, (2, 0): 8, (3, 0): 7, (2, 1): 5, (3, 1): 6, (3, 2): 5, (2, 3): 3, (3, 4): 3, (2, 5): 3, (3, 5): 4, (3, 3): 6}, (1, 4): {(1, 4): 0, (0, 4): 1, (2, 4): 1, (1, 5): 1, (0, 0): 9, (1, 0): 10, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 5): 2, (1, 1): 11, (1, 2): 4, (2, 2): 3, (2, 0): 7, (3, 0): 6, (2, 1): 4, (3, 1): 5, (3, 2): 4, (2, 3): 2, (3, 4): 2, (2, 5): 2, (3, 5): 3, (3, 3): 5}, (0, 5): {(0, 5): 0, (0, 4): 1, (0, 0): 11, (1, 0): 12, (0, 1): 10, (0, 2): 9, (0, 3): 8, (1, 3): 7, (1, 4): 2, (1, 1): 13, (1, 2): 6, (2, 2): 5, (2, 4): 3, (1, 5): 3, (2, 0): 9, (3, 0): 8, (2, 1): 6, (3, 1): 7, (3, 2): 6, (2, 3): 4, (3, 4): 4, (2, 5): 4, (3, 5): 5, (3, 3): 7}, (1, 1): {(1, 1): 0, (1, 0): 1, (0, 0): 2, (0, 1): 3, (0, 2): 4, (0, 3): 5, (1, 3): 6, (0, 4): 12, (1, 4): 11, (0, 5): 13, (1, 2): 7, (2, 2): 8, (2, 4): 10, (1, 5): 12, (2, 0): 12, (3, 0): 11, (2, 1): 9, (3, 1): 10, (3, 2): 9, (2, 3): 9, (3, 4): 11, (2, 5): 11, (3, 5): 12, (3, 3): 10}, (1, 2): {(1, 2): 0, (1, 3): 1, (2, 2): 1, (0, 0): 5, (1, 0): 6, (0, 1): 4, (0, 2): 3, (0, 3): 2, (0, 4): 5, (1, 4): 4, (0, 5): 6, (1, 1): 7, (2, 4): 3, (1, 5): 5, (2, 0): 5, (3, 0): 4, (2, 1): 2, (3, 1): 3, (3, 2): 2, (2, 3): 2, (3, 4): 4, (2, 5): 4, (3, 5): 5, (3, 3): 3}, (2, 2): {(2, 2): 0, (1, 2): 1, (2, 1): 1, (3, 2): 1, (2, 3): 1, (0, 0): 6, (1, 0): 7, (0, 1): 5, (0, 2): 4, (0, 3): 3, (1, 3): 2, (0, 4): 4, (1, 4): 3, (0, 5): 5, (1, 1): 8, (2, 4): 2, (1, 5): 4, (2, 0): 4, (3, 0): 3, (3, 1): 2, (3, 4): 3, (2, 5): 3, (3, 5): 4, (3, 3): 2}, (2, 4): {(2, 4): 0, (1, 4): 1, (2, 3): 1, (3, 4): 1, (2, 5): 1, (0, 0): 8, (1, 0): 9, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 2, (0, 5): 3, (1, 1): 10, (1, 2): 3, (2, 2): 2, (1, 5): 2, (2, 0): 6, (3, 0): 5, (2, 1): 3, (3, 1): 4, (3, 2): 3, (3, 5): 2, (3, 3): 4}, (1, 5): {(1, 5): 0, (1, 4): 1, (0, 0): 10, (1, 0): 11, (0, 1): 9, (0, 2): 8, (0, 3): 7, (1, 3): 6, (0, 4): 2, (0, 5): 3, (1, 1): 12, (1, 2): 5, (2, 2): 4, (2, 4): 2, (2, 0): 8, (3, 0): 7, (2, 1): 5, (3, 1): 6, (3, 2): 5, (2, 3): 3, (3, 4): 3, (2, 5): 3, (3, 5): 4, (3, 3): 6}, (2, 0): {(2, 0): 0, (3, 0): 1, (0, 0): 10, (1, 0): 11, (0, 1): 9, (0, 2): 8, (0, 3): 7, (1, 3): 6, (0, 4): 8, (1, 4): 7, (0, 5): 9, (1, 1): 12, (1, 2): 5, (2, 2): 4, (2, 4): 6, (1, 5): 8, (2, 1): 3, (3, 1): 2, (3, 2): 5, (2, 3): 5, (3, 4): 7, (2, 5): 7, (3, 5): 8, (3, 3): 6}, (3, 0): {(3, 0): 0, (2, 0): 1, (3, 1): 1, (0, 0): 9, (1, 0): 10, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 7, (1, 4): 6, (0, 5): 8, (1, 1): 11, (1, 2): 4, (2, 2): 3, (2, 4): 5, (1, 5): 7, (2, 1): 2, (3, 2): 4, (2, 3): 4, (3, 4): 6, (2, 5): 6, (3, 5): 7, (3, 3): 5}, (2, 1): {(2, 1): 0, (2, 2): 1, (3, 1): 1, (0, 0): 7, (1, 0): 8, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (1, 4): 4, (0, 5): 6, (1, 1): 9, (1, 2): 2, (2, 4): 3, (1, 5): 5, (2, 0): 3, (3, 0): 2, (3, 2): 2, (2, 3): 2, (3, 4): 4, (2, 5): 4, (3, 5): 5, (3, 3): 3}, (3, 1): {(3, 1): 0, (3, 0): 1, (2, 1): 1, (0, 0): 8, (1, 0): 9, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 6, (1, 4): 5, (0, 5): 7, (1, 1): 10, (1, 2): 3, (2, 2): 2, (2, 4): 4, (1, 5): 6, (2, 0): 2, (3, 2): 3, (2, 3): 3, (3, 4): 5, (2, 5): 5, (3, 5): 6, (3, 3): 4}, (3, 2): {(3, 2): 0, (2, 2): 1, (3, 3): 1, (0, 0): 7, (1, 0): 8, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (1, 4): 4, (0, 5): 6, (1, 1): 9, (1, 2): 2, (2, 4): 3, (1, 5): 5, (2, 0): 5, (3, 0): 4, (2, 1): 2, (3, 1): 3, (2, 3): 2, (3, 4): 4, (2, 5): 4, (3, 5): 5}, (2, 3): {(2, 3): 0, (2, 2): 1, (2, 4): 1, (0, 0): 7, (1, 0): 8, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 3, (1, 4): 2, (0, 5): 4, (1, 1): 9, (1, 2): 2, (1, 5): 3, (2, 0): 5, (3, 0): 4, (2, 1): 2, (3, 1): 3, (3, 2): 2, (3, 4): 2, (2, 5): 2, (3, 5): 3, (3, 3): 3}, (3, 4): {(3, 4): 0, (2, 4): 1, (0, 0): 9, (1, 0): 10, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 3, (1, 4): 2, (0, 5): 4, (1, 1): 11, (1, 2): 4, (2, 2): 3, (1, 5): 3, (2, 0): 7, (3, 0): 6, (2, 1): 4, (3, 1): 5, (3, 2): 4, (2, 3): 2, (2, 5): 2, (3, 5): 3, (3, 3): 5}, (2, 5): {(2, 5): 0, (2, 4): 1, (3, 5): 1, (0, 0): 9, (1, 0): 10, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 3, (1, 4): 2, (0, 5): 4, (1, 1): 11, (1, 2): 4, (2, 2): 3, (1, 5): 3, (2, 0): 7, (3, 0): 6, (2, 1): 4, (3, 1): 5, (3, 2): 4, (2, 3): 2, (3, 4): 2, (3, 3): 5}, (3, 5): {(3, 5): 0, (2, 5): 1, (0, 0): 10, (1, 0): 11, (0, 1): 9, (0, 2): 8, (0, 3): 7, (1, 3): 6, (0, 4): 4, (1, 4): 3, (0, 5): 5, (1, 1): 12, (1, 2): 5, (2, 2): 4, (2, 4): 2, (1, 5): 4, (2, 0): 8, (3, 0): 7, (2, 1): 5, (3, 1): 6, (3, 2): 5, (2, 3): 3, (3, 4): 3, (3, 3): 6}, (3, 3): {(3, 3): 0, (3, 2): 1, (0, 0): 8, (1, 0): 9, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 6, (1, 4): 5, (0, 5): 7, (1, 1): 10, (1, 2): 3, (2, 2): 2, (2, 4): 4, (1, 5): 6, (2, 0): 6, (3, 0): 5, (2, 1): 3, (3, 1): 4, (2, 3): 3, (3, 4): 5, (2, 5): 5, (3, 5): 6}}

使用大熊猫,我将字典转换为数据框:

df = pd.DataFrame(Y)
df.index = [*df.index]
df.columns = [*df.columns]
arraydf = df.to_numpy()

这是我得到的数据框:

        (0, 0)  (1, 0)  (0, 1)  (0, 2)  ...  (3, 4)  (2, 5)  (3, 5)  (3, 3)
(0, 0)       0       1       1       2  ...       9       9      10       8
(1, 0)       1       0       2       3  ...      10      10      11       9
(0, 1)       1       2       0       1  ...       8       8       9       7
(0, 2)       2       3       1       0  ...       7       7       8       6
(0, 3)       3       4       2       1  ...       6       6       7       5
(1, 3)       4       5       3       2  ...       5       5       6       4
(0, 4)      10      11       9       8  ...       3       3       4       6
(1, 4)       9      10       8       7  ...       2       2       3       5
(0, 5)      11      12      10       9  ...       4       4       5       7
(1, 1)       2       1       3       4  ...      11      11      12      10
(1, 2)       5       6       4       3  ...       4       4       5       3
(2, 2)       6       7       5       4  ...       3       3       4       2
(2, 4)       8       9       7       6  ...       1       1       2       4
(1, 5)      10      11       9       8  ...       3       3       4       6
(2, 0)      10      11       9       8  ...       7       7       8       6
(3, 0)       9      10       8       7  ...       6       6       7       5
(2, 1)       7       8       6       5  ...       4       4       5       3
(3, 1)       8       9       7       6  ...       5       5       6       4
(3, 2)       7       8       6       5  ...       4       4       5       1
(2, 3)       7       8       6       5  ...       2       2       3       3
(3, 4)       9      10       8       7  ...       0       2       3       5
(2, 5)       9      10       8       7  ...       2       0       1       5
(3, 5)      10      11       9       8  ...       3       1       0       6
(3, 3)       8       9       7       6  ...       5       5       6       0

然后,我将df转换为数组:

arraydf = df.to_numpy()

这是我现在的输出:

[ 0  1  1  2  3  4 10  9 11  2  5  6  8 10 10  9  7  8  7  7  9  9 10  8]
[ 1  0  2  3  4  5 11 10 12  1  6  7  9 11 11 10  8  9  8  8 10 10 11  9]
[ 1  2  0  1  2  3  9  8 10  3  4  5  7  9  9  8  6  7  6  6  8  8  9  7]
[2 3 1 0 1 2 8 7 9 4 3 4 6 8 8 7 5 6 5 5 7 7 8 6]
[3 4 2 1 0 1 7 6 8 5 2 3 5 7 7 6 4 5 4 4 6 6 7 5]
[4 5 3 2 1 0 6 5 7 6 1 2 4 6 6 5 3 4 3 3 5 5 6 4]
[10 11  9  8  7  6  0  1  1 12  5  4  2  2  8  7  5  6  5  3  3  3  4  6]
[ 9 10  8  7  6  5  1  0  2 11  4  3  1  1  7  6  4  5  4  2  2  2  3  5]
[11 12 10  9  8  7  1  2  0 13  6  5  3  3  9  8  6  7  6  4  4  4  5  7]
[ 2  1  3  4  5  6 12 11 13  0  7  8 10 12 12 11  9 10  9  9 11 11 12 10]
[5 6 4 3 2 1 5 4 6 7 0 1 3 5 5 4 2 3 2 2 4 4 5 3]
[6 7 5 4 3 2 4 3 5 8 1 0 2 4 4 3 1 2 1 1 3 3 4 2]
[ 8  9  7  6  5  4  2  1  3 10  3  2  0  2  6  5  3  4  3  1  1  1  2  4]
[10 11  9  8  7  6  2  1  3 12  5  4  2  0  8  7  5  6  5  3  3  3  4  6]
[10 11  9  8  7  6  8  7  9 12  5  4  6  8  0  1  3  2  5  5  7  7  8  6]
[ 9 10  8  7  6  5  7  6  8 11  4  3  5  7  1  0  2  1  4  4  6  6  7  5]
[7 8 6 5 4 3 5 4 6 9 2 1 3 5 3 2 0 1 2 2 4 4 5 3]
[ 8  9  7  6  5  4  6  5  7 10  3  2  4  6  2  1  1  0  3  3  5  5  6  4]
[7 8 6 5 4 3 5 4 6 9 2 1 3 5 5 4 2 3 0 2 4 4 5 1]
[7 8 6 5 4 3 3 2 4 9 2 1 1 3 5 4 2 3 2 0 2 2 3 3]
[ 9 10  8  7  6  5  3  2  4 11  4  3  1  3  7  6  4  5  4  2  0  2  3  5]
[ 9 10  8  7  6  5  3  2  4 11  4  3  1  3  7  6  4  5  4  2  2  0  1  5]
[10 11  9  8  7  6  4  3  5 12  5  4  2  4  8  7  5  6  5  3  3  1  0  6]
[ 8  9  7  6  5  4  6  5  7 10  3  2  4  6  6  5  3  4  1  3  5  5  6  0]

我的问题是:如何使最终的数组看起来像矩阵?我希望所有长度相同的行并以正确的顺序排列(也具有“不错的”可读列)]]

编辑:询问信息:

arraydf.shape
(24, 24)

arraydf.dtype
int64

df.dtypes
(0, 0)    int64
(0, 1)    int64
(0, 2)    int64
(1, 2)    int64
(0, 3)    int64
(0, 4)    int64
(1, 4)    int64
(0, 5)    int64
(1, 5)    int64
(1, 0)    int64
(2, 0)    int64
(1, 1)    int64
(1, 3)    int64
(2, 3)    int64
(3, 0)    int64
(2, 1)    int64
(2, 2)    int64
(2, 4)    int64
(2, 5)    int64
(3, 5)    int64
(3, 1)    int64
(3, 2)    int64
(3, 3)    int64
(3, 4)    int64
dtype: object

df.info
<bound method DataFrame.info of         (0, 0)  (0, 1)  (0, 2)  (1, 2)  ...  (3, 1)  (3, 2)  (3, 3)  (3, 4)
(0, 0)       0       1       2       3  ...       8       9      10      11
(0, 1)       1       0       1       2  ...       7       8       9      10
(0, 2)       2       1       0       1  ...       6       7       8       9
(1, 2)       3       2       1       0  ...       5       6       7       8
(0, 3)       3       2       1       2  ...       7       8       9      10
(0, 4)       4       3       2       3  ...       8       9      10      11
(1, 4)       5       4       3       4  ...       9      10      11      12
(0, 5)       5       4       3       4  ...       9      10      11      12
(1, 5)       6       5       4       5  ...      10      11      12      13
(1, 0)       5       4       3       2  ...       3       4       5       6
(2, 0)       6       5       4       3  ...       2       3       4       5
(1, 1)       4       3       2       1  ...       4       5       6       7
(1, 3)       4       3       2       1  ...       6       7       8       9
(2, 3)       5       4       3       2  ...       7       8       9      10
(3, 0)       7       6       5       4  ...       1       2       3       4
(2, 1)       7       6       5       4  ...       3       4       5       6
(2, 2)       8       7       6       5  ...       4       5       6       7
(2, 4)      14      13      12      11  ...       6       5       4       3
(2, 5)      13      12      11      10  ...       5       4       3       2
(3, 5)      12      11      10       9  ...       4       3       2       1
(3, 1)       8       7       6       5  ...       0       1       2       3
(3, 2)       9       8       7       6  ...       1       0       1       2
(3, 3)      10       9       8       7  ...       2       1       0       1
(3, 4)      11      10       9       8  ...       3       2       1       0
    

我正在尝试将数据框打印为矩阵。为此,我想使用一个数组。需要明确的是:我有一个字典Y,它是这样的:{{0,0):{{0,0):0,(1,0):1,(0,1):1,(0 ,2):2,(0,3):...

python arrays pandas numpy output
1个回答
0
投票

如果您想使数组看起来更好,那么pprint是您的朋友(请参阅this nice article)

© www.soinside.com 2019 - 2024. All rights reserved.