Apply accumulate for a multi-dimensional array along an axis in Numpy

NumpyServer Side ProgrammingProgramming

To Accumulate the result of applying the operator to all elements, use the numpy.accumulate() method in Python Numpy. For a multi-dimensional array, accumulate is applied along only one axis

The numpy.ufunc has functions that operate element by element on whole arrays. The ufuncs are written in C (for speed) and linked into Python with NumPy’s ufunc facility.

A universal function (or ufunc for short) is a function that operates on ndarrays in an element-byelement fashion, supporting array broadcasting, type casting, and several other standard features. That is, a ufunc is a “vectorized” wrapper for a function that takes a fixed number of specific inputs and produces a fixed number of specific outputs.

Steps

At first, import the required library −

import numpy as np

Create a 2d array. The numpy.eye() returns a 2-D array with 1’s as the diagonal and 0’s elsewhere −

arr = np.eye(3)

Display the array −

print("Array...\n", arr)

Get the type of the array −

print("\nOur Array type...\n", arr.dtype)

Get the dimensions of the Array −

print("\nOur Array Dimensions...\n",arr.ndim)

To Accumulate the result of applying the operator to all elements, use the numpy.accumulate() method in Python Numpy. For a multi-dimensional array, accumulate is applied along only one axis.

Add accumulate: Accumulate along axis 0 (rows) −

print("\nAdd accumulate...\n",np.add.accumulate(arr, 0))

Multiply accumulate −

print("\nMultiply accumulate...\n",np.multiply.accumulate(arr, 0))

Example

import numpy as np
import numpy.ma as ma

# The numpy.ufunc has functions that operate element by element on whole arrays.

# ufuncs are written in C (for speed) and linked into Python with NumPy’s ufunc facility

# Create a 2d array.
# The numpy.eye() returns a 2-D array with 1’s as the diagonal and 0’s elsewhere.
arr = np.eye(3)

# Display the array
print("Array...\n", arr)

# Get the type of the array
print("\nOur Array type...\n", arr.dtype)

# Get the dimensions of the Array
print("\nOur Array Dimensions...\n",arr.ndim)

# To Accumulate the result of applying the operator to all elements, use the numpy.accumulate() method in Python Numpy

# For a multi-dimensional array, accumulate is applied along only one axis

# Add accumulate
# Accumulate along axis 0 (rows)

# Add accumulate
print("\nAdd accumulate...\n",np.add.accumulate(arr, 0))

# Multiply accumulate
print("\nMultiply accumulate...\n",np.multiply.accumulate(arr, 0))

Output

Array...
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]

Our Array type...
float64

Our Array Dimensions...
2

Add accumulate...
[[1. 0. 0.]
[1. 1. 0.]
[1. 1. 1.]]

Multiply accumulate...
[[1. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
raja
Updated on 05-Feb-2022 12:02:31

Advertisements