NumPy имеет специальную индексацию, которая позволяет интерпретировать последовательность как второй параметр индексации.
Вы можете просто остаться с массивом numpy, но если вы хотите сделать это со списком python :
import numpy as np
arr = [0,1,4,7,9]
arrs = [arr]
results = np.zeros((len(arrs), 10))
print(results) # [[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
for i, seq in enumerate(arrs):
print(i) # 0
print(seq) # [0, 1, 4, 7, 9]
results[i, seq] = 1
print(results) # [[1. 1. 0. 0. 1. 0. 0. 1. 0. 1.]]
#When I do the above "manually" I get a TypeError
results = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
#this is taking place in numpy behind the scenes
nums = [0, 1, 4, 7, 9] #indices to update
for index in nums:
results[0][index] = 1
print(results) #[[1, 1, 0, 0, 1, 0, 0, 1, 0, 1]]