Apply accumulate for a multi-dimensional array along axis 1 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. We will apply along axis 1.

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-by-element 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 1 (columns) −

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

Multiply accumulate −

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

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 1 (columns)

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

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

Output

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

Our Array type...
float64

Our Array Dimensions...
2

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

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

Advertisements