如何使用NumPy创建所有元素均为1的3×3矩阵
原代码存在的问题
- 首先
np.full()调用不符合语法要求:np.full的必填参数有两个,第一个是目标数组的形状,第二个是要填充的值,你只传入了1个参数,运行时会直接触发参数数量不匹配的报错。 - 其次
np.ones()的入参要求是整数或者整数组成的元组,用来指定输出数组的形状,就算你修正了np.full的语法问题,传入数组作为np.ones的参数也不符合要求,生成的数组元素总数不可能等于9,后续也不可能reshape成3×3的结构。
正确实现方式
方法1:直接指定形状生成(最常用)
直接给np.ones传入形状元组(3,3)即可一步生成目标矩阵:
import numpy as np arr = np.ones((3, 3))
默认生成的是浮点型数组,如果需要整型全1矩阵,补充dtype=int参数即可:np.ones((3, 3), dtype=int)。
方法2:生成后reshape
如果需要走先生成一维数组再修改形状的逻辑,可以先生成长度为9的全1数组再reshape:
import numpy as np arr = np.ones(9).reshape(3, 3)
方法3:用np.full生成
也可以用通用填充函数np.full直接指定形状和填充值生成:
import numpy as np arr = np.full((3, 3), 1)
内容的提问来源于stack exchange,提问作者user17344362
相关产品推荐
相关产品推荐

