脾气暴躁:copyto返回None

时间:2018-07-18 20:46:55

标签: python arrays numpy multidimensional-array mask

当我使用np.copyto时,它总是返回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

该功能应如何使用?

1 个答案:

答案 0 :(得分:-2)

在Python中,默认情况下,如果一个函数没有return语句,它将返回Nonenp.copyto定义不返回任何内容。相反,它会改写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)