Могу ли я улучшить свое решение Numpy для упражнения? ⇐ Python

Программы на Python
Anonymous
Могу ли я улучшить свое решение Numpy для упражнения?

Сообщение Anonymous »

Меня попросили использовать следующий набор индексов столбцов:

Код: Выделить всё

 y = np.array([3, 0, 4, 1])
чтобы превратить в 1 все элементы в следующей матрице:

Код: Выделить всё

x = np.zeros(shape = (4, 5)) 
которые имеют y в качестве начального столбца и строки, заданные позицией y. Просто для ясности.
Окончательный результат должен быть следующим:

Код: Выделить всё

[[0. 0. 0. 1. 1.]
[1. 1. 1. 1. 1.]
[0. 0. 0. 0. 1.]
[0. 1. 1. 1. 1.]]
Например:

Код: Выделить всё

y[0] = 3
,
тогда строка 0, столбцы 3 и 4 должны быть равны 1.
Я сделал это так:,
тогда строка 0, столбцы 3 и 4 должны быть равны 1.
Я сделал это так: р>

Код: Выделить всё

for (idx, num) in enumerate(y):         x[idx, num:] = 1
Можно ли этот результат записать по-другому и/или улучшить с помощью других функций Numpy (например, с помощью векторизации)?

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-exercise

Вернуться в «Python»