вызывать элементы пустого массива в python - PullRequest
0 голосов
/ 09 мая 2018

Интересно, как я могу создать пустой массив, элементы которого можно вызывать, потому что:

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 голосов
/ 09 мая 2018

Вы хотите np.zeros вместо empty. empty создает n элементов, но не инициализирует их каким-либо значением. Следовательно, оно не определено / случайно.

Из-за своей неопределенности np.empty может быть более эффективным.

>>> np.zeros(4)
array([0., 0., 0., 0.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...