返回 NumPy 中沿给定轴转置的掩码数组视图


要在 Python 中返回具有转置轴的数组视图,请使用 NumPy 中的 **ma.MaskedArray.transpose()** 方法。对于一维数组,这没有效果,因为转置向量只是相同的向量。要将一维数组转换为二维列向量,必须添加一个额外的维度。np.atleast2d(a).T 可以实现此目的,a[:, np.newaxis] 也可以。对于二维数组,这是标准的矩阵转置。

轴可以是:

  • None 或无参数 - 反转轴的顺序。

  • 整数元组 - 元组中第 j 个位置的 i 表示 a 的第 i 个轴成为 a.transpose() 的第 j 个轴。

  • n 个整数 - 与相同整数的 n 元组相同

步骤

首先,导入所需的库:

import numpy as np
import numpy.ma as ma

使用 numpy.array() 方法创建一个包含整数元素的数组:

arr = np.array([[49, 85, 45], [67, 33, 59]])
print("Array...
", arr) print("
Array type...
", arr.dtype)

获取数组的维度:

print("Array Dimensions...
",arr.ndim)

创建一个掩码数组并掩盖其中一些无效元素:

maskArr = ma.masked_array(arr, mask =[[0, 0, 1], [ 0, 1, 0]])
print("
Our Masked Array
", maskArr) print("
Our Masked Array type...
", maskArr.dtype)

获取掩码数组的维度:

print("
Our Masked Array Dimensions...
",maskArr.ndim)

获取掩码数组的形状:

print("
Our Masked Array Shape...
",maskArr.shape)

获取掩码数组的元素个数:

print("
Elements in the Masked Array...
",maskArr.size)

返回具有转置轴的数组视图,使用 ma.MaskedArray.transpose():

print("
Result...
",maskArr.transpose((1, 0)))

示例

# Python ma.MaskedArray - Return a view of the array with axes transposed along given axis

import numpy as np
import numpy.ma as ma

# Create an array with int elements using the numpy.array() method
arr = np.array([[78, 85, 51], [56, 33, 97]])
print("Array...
", arr) print("
Array type...
", arr.dtype) # Get the dimensions of the Array print("
Array Dimensions...
",arr.ndim) # Create a masked array and mask some of them as invalid maskArr = ma.masked_array(arr, mask =[[0, 1, 0], [ 0, 0, 0]]) print("
Our Masked Array
", maskArr) print("
Our Masked Array type...
", maskArr.dtype) # Get the dimensions of the Masked Array print("
Our Masked Array Dimensions...
",maskArr.ndim) # Get the shape of the Masked Array print("
Our Masked Array Shape...
",maskArr.shape) # Get the number of elements of the Masked Array print("
Elements in the Masked Array...
",maskArr.size) # To return a view of the array with axes transposed, use the ma.MaskedArray.transpose() method in Numpy print("
Result...
",maskArr.transpose((1, 0)))

输出

Array...
[[78 85 51]
[56 33 97]]

Array type...
int64

Array Dimensions...
2

Our Masked Array
[[78 -- 51]
[56 33 97]]

Our Masked Array type...
int64

Our Masked Array Dimensions...
2

Our Masked Array Shape...
(2, 3)

Elements in the Masked Array...
6

Result...
[[78 56]
[-- 33]
[51 97]]

更新于:2022年2月4日

89 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告