numpy.cumulative_prod#

numpy.cumulative_prod(x, /, *, ось=None, dtype=None, выход=None, include_initial=False)[источник]#

Возвращает кумулятивное произведение элементов вдоль заданной оси.

Эта функция является совместимой с Array API альтернативой numpy.cumprod.

Параметры:
xarray_like

Входной массив.

осьint, необязательный

Ось, по которой вычисляется кумулятивное произведение. По умолчанию (None) разрешено только для одномерных массивов. Для массивов с более чем одним измерением axis требуется.

dtypedtype, опционально

Тип возвращаемого массива, а также аккумулятора, в котором элементы умножаются. Если dtype не указан, он по умолчанию принимает dtype x, если только x имеет целочисленный dtype с точностью меньше, чем у целого числа по умолчанию на платформе. В этом случае вместо него используется целое число по умолчанию на платформе.

выходndarray, необязательно

Альтернативный выходной массив для размещения результата. Он должен иметь ту же форму и длину буфера, что и ожидаемый вывод, но тип результирующих значений будет приведён при необходимости. См. Определение типа вывода для получения дополнительной информации.

include_initialbool, необязательно

Логический флаг, указывающий, включать ли начальное значение (единицы) как первое значение в выводе. С include_initial=True форма выхода отличается от формы входа. По умолчанию: False.

Возвращает:
cumulative_prod_along_axisndarray

Новый массив с результатом возвращается, если только out указан, в этом случае ссылка на out возвращается. Результат имеет ту же форму, что и x if include_initial=False.

Примечания

Арифметика является модульной при использовании целочисленных типов, и при переполнении ошибка не возникает.

Примеры

>>> a = np.array([1, 2, 3])
>>> np.cumulative_prod(a)  # intermediate results 1, 1*2
...                        # total product 1*2*3 = 6
array([1, 2, 6])
>>> a = np.array([1, 2, 3, 4, 5, 6])
>>> np.cumulative_prod(a, dtype=float) # specify type of output
array([   1.,    2.,    6.,   24.,  120.,  720.])

Кумулятивное произведение для каждого столбца (т.е., по строкам) из b:

>>> b = np.array([[1, 2, 3], [4, 5, 6]])
>>> np.cumulative_prod(b, axis=0)
array([[ 1,  2,  3],
       [ 4, 10, 18]])

Кумулятивное произведение для каждой строки (т.е. по столбцам) массива b:

>>> np.cumulative_prod(b, axis=1)
array([[  1,   2,   6],
       [  4,  20, 120]])