📅  最后修改于: 2023-12-03 15:18:02.920000             🧑  作者: Mango
MaskedArray.reshape()
是Numpy库中的函数,用于将Numpy的MaskedArray数组重新变形为指定尺寸的新数组。
通常情况下,Numpy的MaskedArray数组是采用按顺序展开的方式存储数据的。即将多维数组转化为一维数组。使用reshape()
函数可以将一维数组重新构造成多维数组。此外,对于遮挡值,该函数将新数组中的值设置为遮挡值。
numpy.ma.reshape(array, newshape, order='C')
参数说明:
array
:需要改变形状的多维数组,必须是MaskedArray类型。newshape
:重构后的新尺寸,必须和原始数据中的元素数量相同。order='C'
: 指定从最外层的维开始读取数组的顺序。默认为C表示用C语言的顺序分配存储区。返回一个根据新形状重新变形的遮挡阵列。
import numpy as np
# 创建一个一维MaskedArray数组
a = np.ma.array([1, 2, 3, 4, 5], mask=[False, False, True, False, False])
# 构建2行3列的遮挡阵列
b = a.reshape((2, 3))
print(b) # [[1 2 --][4 5 --]]
# 构建3行2列的遮挡阵列,遮挡值为0
c = a.reshape((3, 2), order='F').filled(0)
print(c) # [[1 0] [2 0] [3 4]]
在上述示例中,首先创建一个一维遮挡阵列数组a
,其中第3个元素被遮挡。然后使用reshape()
函数将数组a
变成一个2×3的遮挡阵列,reshape((2,3))
。最后,再用reshape()
函数将数组a
变成一个3×2的遮挡阵列,数组中填充遮挡值0而非实际值,reshape((3,2), order='F').filled(0)
。
总的来说,reshape()
函数是一种重塑、重构、裁剪数组的好方法。 对于遮挡数组,它将保留遮挡值并根据新形状重新构造数组。