我有一个带有一些随机数的numpy数组,如何创建一个大小相同的新数组,并用一个值填充它?
我有以下代码:
A=np.array([[2,2],
[2,2]])
B=np.copy(A)
B=B.fill(1)
我希望有一个新的阵列B,其大小与A相同,但填充为1。但是,它返回None
个对象。使用np.full
时相同。
答案 0 :(得分:10)
您可以使用np.full_like
:
B = np.full_like(A, 1)
这将创建一个与A
具有相同属性的数组,并将其填充为1
。
如果你想用1
填充它,还有一个便利功能:np.ones_like
B = np.ones_like(A)
您的示例不起作用,因为B.fill
不返回任何内容。它“就地”工作。因此,您填写了B
,但您立即用[{1}} B
返回None
来覆盖变量fill
。如果您像这样使用它会起作用:
A=np.array([[2,2], [2,2]])
B=np.copy(A)
B.fill(1)