如何使一个新的numpy数组与给定的数组大小相同,并用标量值填充它

时间:2016-03-13 07:54:07

标签: python arrays numpy

我有一个带有一些随机数的numpy数组,如何创建一个大小相同的新数组,并用一个值填充它?

我有以下代码:

A=np.array([[2,2],
            [2,2]])
B=np.copy(A)
B=B.fill(1)

我希望有一个新的阵列B,其大小与A相同,但填充为1。但是,它返回None个对象。使用np.full时相同。

1 个答案:

答案 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)