第一种情况:
>>> import numpy as np
>>> x=np.array(0)
>>> x=np.append(x,1)
>>> x
array([0, 1])
x
包含2个元素。为什么会这样?!
第二种情况:
>>> x=np.array([])
>>> x=np.append(x,1)
>>> x
array([ 1.])
x
包含1个元素,与预期相符。
np.array(0)
和np.array([])
有什么区别?
第一种情况下,您创建了一个名为x
的数组,其中包含一个值,即0
。
第二种情况下,您创建了一个空数组,名为x
,其中不包含任何值,但仍然是一个数组。
第一种情况
因此,当您附加 x = np.append(x,1)
时,值1
将被添加到数组中(已经包含0),即现在它包含0和1
第二种情况
由于空数组中没有值,因此当您附加 x=np.append(x,1)
时,值1
将被添加,并且x
的长度变为1 (即它现在只包含1)
P.S. 我认为您可能认为调用 x = np.array(0)
会使其成为空数组,但事实并非如此。在Python中,0仍然被视为数字,并被附加到数组中。
x = np.array(0)
时,你创建了一个值为 0
的 x
。因此,无论你将要附加什么到 x
中,都将包含 0
和附加的值。 - Srivatsanarray(0)
是一个“零维”数组,而 array([0])
则是一个一维数组。 - sebix
np.array(0)
是一个包含0的数组,而np.array([])
是一个不包含任何元素的空数组。 - Srivatsan