Как создать простой массив нулей длины списка? - PullRequest
0 голосов
/ 20 января 2019

У меня есть список, скажем

a = [3, 4, 5, 6, 7]

И я хочу создать массив нулей длины этого списка.

Если я сделаю

b = np.zeros((len(a), 1))

Я получаю

[[0, 0, 0, 0, 0]]

вместо

[0, 0,0, 0, 0]

Каков наилучший способ получить последний вариант?

Ответы [ 3 ]

0 голосов
/ 20 января 2019

Вы передали двухэлементный tuple в zeros, поэтому он создал двумерный массив, вы можете просто передать целое число в zeros

a = [3, 4, 5, 6, 7]
b = np.zeros(len(a))
print(b) #prints [ 0.  0.  0.  0.  0.]
0 голосов
/ 20 января 2019

Вы можете попробовать это

np.zeros(len(a), dtype=np.int)

Вернется

array([0, 0, 0, 0, 0])
0 голосов
/ 20 января 2019

Если вы не хотите заботиться о фигурах, используйте np.zeros_like:

np.zeros_like(a)
# array([0, 0, 0, 0, 0])

Существует также возможность запроса np.shape:

np.zeros(np.shape(a))
# array([0., 0., 0., 0., 0.])

Обе опции должны работать и для списков ND.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...