如何将(2,2)矩阵转换为(4,4)矩阵?保持元素值不变
解决方法
在NumPy中可以用np.repeat()函数实现这个需求,它能在指定轴上重复数组元素,完全符合你不改变元素值、仅放大矩阵尺寸的要求。
具体实现代码:
import numpy as np a = np.array([[1,2], [3,4]]) # 先在行方向(垂直)重复每个元素2次,再在列方向(水平)重复每个元素2次 b = np.repeat(np.repeat(a, 2, axis=0), 2, axis=1) print(b)
输出结果:
[[1 1 2 2] [1 1 2 2] [3 3 4 4] [3 3 4 4]]
函数说明:
np.repeat(arr, repeats, axis):arr是输入数组,repeats是重复次数,axis指定重复的维度:axis=0:沿垂直方向(行)重复元素axis=1:沿水平方向(列)重复元素
注意:不要用np.tile(),它是重复整个数组块,会得到[[1 2 1 2],[3 4 3 4],[1 2 1 2],[3 4 3 4]],不符合你的需求。
内容的提问来源于stack exchange,提问作者vukool
相关产品推荐
相关产品推荐

