在python中调用空数组的元素

时间:2018-05-09 03:50:17

标签: python arrays numpy

我想知道如何创建一个空元素,其元素可以调用,因为:

a = np.empty(4)

给出了以下不是真实的空数组:

a = array([  0.   ,   0.   , 431.675, 291.84 ])

我不明白为什么(请告诉我原因!)这种情况正在发生,但无论如何,我试过这个:

b = np.empty((0,4))

它给出了这个:

b = array([], shape=(0, 4), dtype=float64)

听起来像一个空数组,但其元素不可调用,如:

b[0]

给出:

index 0 is out of bounds for axis 0 with size 0

我知道我可以拥有一个包含任何元素的数组,然后覆盖每个元素的值,如下所示:

p1 = [10,20,100,24352435] #instead of p1 = np.empty(4)
p2 = [1,0,0,1]

    for i in range(4):
        if p2[i] == 0:
            p1[i] = int(1)
        else:
            p1[i] = int(0)  

但问题是np.empty然后是什么意思?!

1 个答案:

答案 0 :(得分:2)

您希望np.zeros代替emptyempty会创建n项,但不会将它们初始化为任何值。因此,它是未定义的/随机的。

由于其未定义,np.empty可以更有效。

>>> np.zeros(4)
array([0., 0., 0., 0.])