numpy.empty给出非空数组

时间:2017-07-02 21:11:35

标签: python numpy

当我使用foo = np.empty(1)创建一个空的numpy数组时,结果数组包含一个float64:

>>> foo = np.empty(1)
>>> foo
array([ 0.])
>>> type(foo[0])
<type 'numpy.float64'>

为什么它不会返回array([])

3 个答案:

答案 0 :(得分:7)

您没有阅读the documentation,其中说:

  

返回给定形状和类型的新数组,而不初始化条目。

{{1}}与创建没有元素意义上的“空”数组无关。它只是意味着数组没有初始化它的值(即,它们是不可预测的,并且取决于为数组分配的内存中发生的任何事情)。

答案 1 :(得分:1)

foo = np.empty(0) 

是您需要的

您将其大小指定为1,您需要将其设置为0,就像他们在评论中告诉您的那样

答案 2 :(得分:0)

如果您想要尺寸为{0}的尺寸= 0的数组,则可以使用N

np.empty((0,)*N)

当然,如果数组有>>> np.empty((0,)*1) array([], dtype=float64) >>> np.empty((0,)*2) array([], shape=(0, 0), dtype=float64) ,则.size == 0empty相同