np.zeros(img)和np.copy(img)* 0之间的区别是什么?

时间:2017-12-18 10:55:48

标签: python python-3.x numpy

这三者之间有什么区别:

np.zeros(img)np.zeros_like(img)np.copy(img)*0

我什么时候应该使用它们?

1 个答案:

答案 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_likezeros的替代输入,您可以在其中提供数组,并复制其形状和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]])