Numpy: О втором правиле numpy.ufunc.reduceat?

Из документов - v1.14 второе правило

  • если индексы [i] >= индексы [i + 1], i-я обобщенная "строка" - это просто [indices[i]].

Так как это будет использоваться? Есть ли реальный пример?

Я имел в виду, что должны быть (?) Некоторые реальные ситуации, которые соответствуют тому, что делает это правило, тогда мы определили правило, чтобы соответствовать им, так что же это за ситуация?

1 ответ

Первые 2 примера используют это правило.

Во втором примере, массив 2d, он явно показывает, что [0, 3, 1, 2, 0] производит

# [row1 + row2 + row3]          0:3
# [row4]                        3
# [row2]                        1:2
# [row3]                        2 
# [row1 + row2 + row3 + row4]   0:end

В первом примере это правило частично скрыто индексированием [:: 2].

Без этого:

In [183]: np.add.reduceat(np.arange(8),[0,4, 1,5, 2,6, 3,7])
Out[183]: array([ 6,  4, 10,  5, 14,  6, 18,  7])

Есть [0:4] сумма, [4], [1,5] сумма, [5], [2:6] сумма, [6], [3:7] сумма, 7

Выбирая только нечетные результаты, мы получаем 4 суммы диапазона:

In [184]: _[::2]
Out[184]: array([ 6, 10, 14, 18])

In [187]: [np.arange(0,4).sum(),np.arange(1,5).sum(),np.arange(2,6).sum()]
Out[187]: [6, 10, 14]
Другие вопросы по тегам