首页 > 解决方案 > 在 Python 中转置、旋转和组合二维数组

问题描述

我有一个二维数组,它的大小是 93 X 93。

import numpy as np
import matplotlib.pyplot as plt

size = 93

arr2D = np.eye(size, size, dtype=float)
for i in range(size):
    for j in range(size):
        arr2D[i][j] = np.arctan((i+1)/(j+1))

arr2D = np.cos(arr2D)

plt.imshow(arr2D)
plt.colorbar(fraction=0.0455)
plt.show()

在此处输入图像描述

我想创建4个相同的数组,转置并组合它们(大小:186 X 186),使它们看起来像下图,我该怎么做?

在此处输入图像描述

标签: pythonnumpymatplotlib

解决方案


您可以使用np.flipudnp.fliplr进行翻转,使用np.vstacknp.c_进行堆叠

stacked_arr = np.c_[np.fliplr(arr2D),arr2D]
stacked_arr_flipped = np.flipud(np.c_[np.fliplr(arr2D),arr2D])
new_arr = np.vstack((stacked_arr_flipped ,stacked_arr ))

plt.imshow(new_arr)
plt.colorbar(fraction=0.0455)
plt.show()

在此处输入图像描述


推荐阅读