Попробуйте это так
number_of_classes = 24
n_users = 7
n_images = 1624
letters_to_ones = np.zeros((n_users, n_images, number_of_classes))
for letter in range(number_of_classes):
letters_to_ones[:, (10*letter) : (10*letter + 9), letter] = 1
Не переиндексируйте массив, выполнив a[1:2][3:4][5:6]
.Вместо этого используйте множественное индексирование, как я уже говорил выше: a[1:2, 3:4, 5:6]
.Ваш первый слайс-индекс не делает то, что вы думаете, на самом деле ваш второй слайс также индексирует в первом измерении.Вот что я имею в виду
a = np.zeros((4,3,2))
res = a[:4]
print(res.shape)
# => (4, 3, 2)
Обратите внимание, что, если мы добавили больше срезов, например, res = a[:4][:2]
, второй срез по-прежнему индексирует первое измерение.