这三者之间有什么区别:
np.zeros(img)
,np.zeros_like(img)
和np.copy(img)*0
?
我什么时候应该使用它们?
答案 0 :(得分:0)
zeros
是基本操作,创建一个具有给定形状和dtype的数组:
In [313]: arr = np.zeros((3,4),int)
In [314]: arr
Out[314]:
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
zeros_like
是zeros
的替代输入,您可以在其中提供数组,并复制其形状和dtype(但不是值):
In [315]: bar = np.zeros_like(arr)
In [316]: bar
Out[316]:
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
copy*0
也有效,但一般情况下我不推荐它。我最近在测试一些代码来重置数组时使用了N2 *=0
。
In [317]: car = arr.copy()*0
In [318]: car
Out[318]:
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])