Я пытаюсь заполнить массив numpy
, и я не могу найти правильный подход из документации для numpy. У меня есть массив:Заполнение массива numpy с нулями и использование другого массива в качестве индекса для них
a = array([2, 1, 3, 5, 7])
Это представляет индекс для массива, который я хочу создать. Поэтому при значении индекса 2 или 1 или 3 и т. Д. Я хотел бы иметь один в массиве и всюду в целевом массиве для заполнения нулями. Похоже на маску массива. Я также хотел бы указать общую длину целевого массива, l
. Так что мой идеал функция хотела бы что-то вроде:
>>> foo(a,l)
array([0,1,1,1,0,1,0,1,0,0,0]
, где l=10
для приведенного выше примера.
EDIT:
Так что я написал эту функцию:
def padwithones(a,l) :
p = np.zeros(l)
for i in a :
p = np.insert(p,i,1)
return p
Что дает:
Out[19]:
array([ 0., 1., 0., 1., 1., 1., 0., 1., 0., 0., 0., 0., 0.,
0., 0.])
Что не правильно!
вы пробовали что-нибудь? Возможно, используя 'np.zeros', а затем проиндексированное назначение ... ?? –
, поэтому используйте генератор, чтобы определить, когда один вставлен в массив 'np.zeros'? –
Нет. Просто 'array_of_zeroes [a] = 1' –