如何将给定的numpy.ndarray矩阵扩展为指定的零填充包围矩阵?
解决方案:将小Numpy数组嵌入全0大数组
嘿,要实现把你的2x2数组放到4x6全0数组的中间位置,有两种简单直接的方法,我给你一步步拆解:
方法1:手动创建全0数组后切片赋值
这种方法直观易懂,先创建目标尺寸的全0数组,再把原数组放到指定位置:
import numpy as np a = np.array([[1, 2], [3, 4]]) # 创建4行6列的全0数组 result = np.zeros((4, 6), dtype=int) # 将原数组赋值到中间区域:行索引1-3(共2行),列索引2-4(共2列) result[1:3, 2:4] = a print(result)
运行结果:
[[0 0 0 0 0 0] [0 0 1 2 0 0] [0 0 3 4 0 0] [0 0 0 0 0 0]]
方法2:使用np.pad()函数(更简洁)
Numpy的pad函数专门用来给数组添加边界填充,我们可以指定上下左右的填充长度,填充值设为0:
import numpy as np a = np.array([[1, 2], [3, 4]]) # pad参数解释:((上填充行数, 下填充行数), (左填充列数, 右填充列数)) result = np.pad(a, pad_width=((1, 1), (2, 2)), mode='constant', constant_values=0) print(result)
运行结果和上面完全一致,这种方法更灵活,适合调整填充的尺寸。
两种方法都能完美实现你的需求,看你更喜欢哪种风格啦~
内容的提问来源于stack exchange,提问作者Tejeshwara B.M
相关产品推荐
相关产品推荐

