Numpy:复制到 returns None

Numpy: copyto returns None

当我使用 np.copyto 时,它总是 returns None:

import numpy as np
a = np.random.random((3,3))
b = np.zeros_like(a)
b[:,0] = 100
b_nonzero_mask = b.astype(bool)
c = np.copyto(a, b, where=b_nonzero_mask)
print(c)  # None

该函数应该如何使用?

在 Python 中,默认情况下,如果一个函数没有 return 语句,它 returns Nonenp.copyto 定义没有 return 任何东西。相反,它会在原地重写 a

所以,你必须事先复制a

import numpy as np
a = np.random.random((3,3))
b = np.zeros_like(a)
b[:,0] = 100
b_nonzero_mask = b.astype(bool)
c = np.copy(a)
np.copyto(c, b, where=b_nonzero_mask)