Numpy для установки элементов массива в значение, заданное списком индексов Я ищу функцию numpy, которая будет делать эквивалент: indices = set([1, 4, 5, 6, 7]) zero = numpy.zeros(10) for i in indices: zero[i] = 42 Ответ 1 Вы можете просто указать ему список индексов: indices = [1, 4, 5, 6, 7] zero = numpy.zeros(10) zero[indices] = 42 Ответ 2 Если у вас есть ndarry: >>> x = np.zeros((3, 3, 3)) >>> y = [0, 9, 18] >>> x array([[[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]]) >>> np.put(x, y, 1) >>> x array([[[ 1., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 1., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 1., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]])
Ответ 1 Вы можете просто указать ему список индексов: indices = [1, 4, 5, 6, 7] zero = numpy.zeros(10) zero[indices] = 42
Ответ 2 Если у вас есть ndarry: >>> x = np.zeros((3, 3, 3)) >>> y = [0, 9, 18] >>> x array([[[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]]) >>> np.put(x, y, 1) >>> x array([[[ 1., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 1., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]], [[ 1., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]])