Python numpy如何将数组按倍数放大 重复元素生成对应尺寸数组
Numpy实现数组元素级等比放大的方法
你要的这种每个元素按放大倍数重复的效果,直接用numpy自带的repeat方法就能实现,操作步骤如下:
示例代码
首先导入numpy并创建原始数组:
import numpy as np # 原始2×2数组 origin_arr = np.array([[1, 2], [3, 4]])
设定放大倍数后,分别在行、列两个维度执行重复操作即可:
scale = 2 # 可修改为任意正整数,比如3就是放大3倍 # 先在行维度重复scale次,再在列维度重复scale次 resized_arr = origin_arr.repeat(scale, axis=0).repeat(scale, axis=1)
打印结果就能看到你要的效果:
print(resized_arr)
补充说明
- 除了两次调用
repeat的写法,你也可以用克罗内克积函数np.kron实现相同效果:
resized_arr = np.kron(origin_arr, np.ones((scale, scale), dtype=origin_arr.dtype))
- 两种方法都适配任意尺寸的输入数组,不止局限于示例中的2×2结构
- 若需要保留原数组的数据类型,注意给
np.ones指定dtype参数和原数组一致即可
内容的提问来源于stack exchange,提问作者Irving Washington
相关产品推荐
相关产品推荐

