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

men*_*xyz 4 python arrays numpy

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

我有以下代码:

A=np.array([[2,2],
            [2,2]])
B=np.copy(A)
B=B.fill(1)
Run Code Online (Sandbox Code Playgroud)

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

MSe*_*ert 11

你可以使用np.full_like:

B = np.full_like(A, 1)
Run Code Online (Sandbox Code Playgroud)

这将创建一个具有相同属性的数组,A并将填充它1.

如果你想填充它,1还有一个便利功能:np.ones_like

B = np.ones_like(A)
Run Code Online (Sandbox Code Playgroud)

您的示例不起作用,因为B.fill不返回任何内容.它"就地"工作.所以你填写你的,B但你立即用你BNone回报覆盖你的变量fill.如果您像这样使用它会起作用:

A=np.array([[2,2], [2,2]])
B=np.copy(A)
B.fill(1)
Run Code Online (Sandbox Code Playgroud)