如何使用NumPy从5×5零矩阵生成指定元素排列模式的矩阵
问题原因说明
numpy的ndarray是固定维度的数组,Python列表的append方法作用是在列表末尾追加元素、变更列表长度,完全不适合用来修改数组指定位置的元素;即使是numpy提供的np.append方法,也不会修改原数组,只会返回一个拼接后的新数组,所以你之前的操作不会生效。你可以直接通过numpy的索引语法给对应位置赋值实现需求。
实现代码
import numpy as np # 创建5×5整数类型零矩阵,避免默认浮点数输出带.0后缀 x = np.zeros((5, 5), dtype=int) # 给前3行(索引0、1、2)的第一列和最后一列赋值为5 x[:3, 0] = 5 x[:3, 4] = 5 # 给第4行(索引3)所有元素赋值为5 x[3, :] = 5 # 如果你需要第5行(索引4)也和前三行规则一致,可取消下面一行的注释 # x[4, [0,4]] = 5 print(x)
输出示例(开启第5行赋值时)
[[5 0 0 0 5] [5 0 0 0 5] [5 0 0 0 5] [5 5 5 5 5] [5 0 0 0 5]]
如果不需要修改第5行,最后一行输出为[0 0 0 0 0],你可以根据实际需求调整赋值规则。
内容的提问来源于stack exchange,提问作者Jellyfish
相关产品推荐
相关产品推荐

