# Join a sequence of masked arrays along negative axis in Numpy

To join a sequence of masked arrays along negative axis, use the ma.stack() method in Python Numpy. The axis is set using the "axis" parameter. The axis parameter specifies the index of the new axis in the dimensions of the result. For example, if axis=0 it will be the first dimension and if axis=-1 it will be the last dimension.

The out parameter, if provided, is the destination to place the result. The shape must be correct, matching that of what stack would have returned if no out argument were specified.

The function returns the stacked array has one more dimension than the input arrays. It is applied to both the _data and the _mask, if any.

## Steps

At first, import the required library −

import numpy as np
import numpy.ma as ma

Create Array 1, a 3x3 array with int elements using the numpy.arange() method −

arr1 = np.arange(9).reshape((3,3))
print("Array1...", arr1)
print("Array type...", arr1.dtype)

arr1 = ma.array(arr1)


arr1[0, 1] = ma.masked
arr1[1, 1] = ma.masked

print("Masked Array1...",arr1)


Create Array 2, another 3x3 array with int elements using the numpy.arange() method −

arr2 = np.arange(9).reshape((3,3))
print("Array2...", arr2)
print("Array type...", arr2.dtype)

arr2 = ma.array(arr2)


arr2[2, 1] = ma.masked
arr2[2, 2] = ma.masked

print("Masked Array2...",arr2)


To join a sequence of masked arrays along specific axis, use the ma.stack() method. The negative axis is set using the "axis" parameter −

print("Result of joining arrays...",ma.stack((arr1, arr2), axis = -1))

## Example

import numpy as np
import numpy.ma as ma

# Array 1
# Creating a 3x3 array with int elements using the numpy.arange() method
arr1 = np.arange(9).reshape((3,3))
print("Array1...", arr1)
print("Array type...", arr1.dtype)

# Get the dimensions of the Array
print("Array Dimensions...",arr1.ndim)

# Get the shape of the Array
print("Our Array Shape...",arr1.shape)

# Get the number of elements of the Array
print("Elements in the Array...",arr1.size)

arr1 = ma.array(arr1)

# Array 2
# Creating another 3x3 array with int elements using the numpy.arange() method
arr2 = np.arange(9).reshape((3,3))
print("Array2...", arr2)
print("Array type...", arr2.dtype)

# Get the dimensions of the Array
print("Array Dimensions...",arr2.ndim)

# Get the shape of the Array
print("Our Array Shape...",arr2.shape)

# Get the number of elements of the Array
print("Elements in the Array...",arr2.size)

arr2 = ma.array(arr2)

# To join a sequence of masked arrays along specific axis, use the ma.stack() method in Python Numpy
# The negative axis is set using the "axis" parameter
print("Result of joining arrays...",ma.stack((arr1, arr2), axis = -1))

## Output

Array1...
[[0 1 2]
[3 4 5]
[6 7 8]]

Array type...
int64

Array Dimensions...
2

Our Array Shape...
(3, 3)

Elements in the Array...
9

[[0 -- 2]
[3 -- 5]
[6 7 8]]

Array2...
[[0 1 2]
[3 4 5]
[6 7 8]]

Array type...
int64

Array Dimensions...
2

Our Array Shape...
(3, 3)

Elements in the Array...
9

[[0 1 2]
[3 4 5]
[6 -- --]]

Result of joining arrays...
[[[0 0]
[-- 1]
[2 2]]
[[3 3]
[-- 4]
[5 5]]
[[6 6]
[7 --]
[8 --]]]

Updated on: 04-Feb-2022

67 Views 