如何在Python中将3×2数组插入至4×3零数组?
解决方法:Numpy数组切片赋值
你的代码会触发索引越界错误,因为数组b只有3行(索引0-2)和2列(索引0-1),但循环遍历了a的4行3列,当i=3或j=2时,b[i,j]会超出范围。
在Numpy里不需要用嵌套循环,直接通过切片赋值就能高效完成这个操作:
import numpy as np # 创建4×3的零数组 a = np.zeros((4, 3)) # 创建3×2的全1数组 b = np.ones((3, 2)) # 将b的值插入到a的前3行、前2列位置 a[:3, :2] = b # 查看结果 print(a)
运行后输出的a会是:
[[1. 1. 0.] [1. 1. 0.] [1. 1. 0.] [0. 0. 0.]]
解释
a[:3, :2]表示选取数组a的前3行([:3]对应索引0、1、2)和前2列([:2]对应索引0、1),这个子数组的维度刚好和b的3×2匹配,直接赋值就能把b的所有元素填充进去,剩下的位置保持初始的0值。
内容的提问来源于stack exchange,提问作者user21040942
相关产品推荐
相关产品推荐

