Python Numpy MaskedArray.allequal()函数
在许多情况下,数据集可能是不完整的,或因存在无效数据而受到污染。例如,一个传感器可能未能记录一个数据,或者记录了一个无效的值。numpy.ma模块通过引入掩码数组,为解决这个问题提供了一个方便的方法。掩码数组是可能存在缺失或无效项的数组。
numpy.MaskedArray.allequal()函数如果a和b的所有条目都相等,则返回True,使用fill_value作为真值,其中任何一个或两个都被屏蔽。
语法: numpy.ma.allequal(arr1, arr2, fill_value=True)
参数:
arr1, arr2 : [array_like] 要比较的输入数组。
fill_value : [ bool, optional] arr1或arr2中的屏蔽值是否被视为相等(True)或不相等(False)。
返回 : [ bool]如果两个数组在给定的公差内相等,则返回True,否则返回False。如果任何一个数组包含NaN,则返回False。
代码#1:
# Python program explaining
# numpy.MaskedArray.allequal() method
# importing numpy as geek
# and numpy.ma module as ma
import numpy as geek
import numpy.ma as ma
# creating 1st input array
in_arr1 = geek.array([1e8, 1e-5, -15.0])
print ("1st Input array : ", in_arr1)
# Now we are creating 1st masked array by making third entry as invalid.
mask_arr1 = ma.masked_array(in_arr1, mask =[0, 0, 1])
print ("1st Masked array : ", mask_arr1)
# creating 2nd input array
in_arr2 = geek.array([1e8, 1e-5, 15.0])
print ("2nd Input array : ", in_arr2)
# Now we are creating 2nd masked array by making third entry as invalid.
mask_arr2 = ma.masked_array(in_arr2, mask =[0, 0, 1])
print ("2nd Masked array : ", mask_arr2)
# applying MaskedArray.allequal method
out_arr = ma.allequal(mask_arr1, mask_arr2, fill_value = False)
print ("Output array : ", out_arr)
输出:
1st Input array : [ 1.0e+08 1.0e-05 -1.5e+01]
1st Masked array : [100000000.0 1e-05 --]
2nd Input array : [1.0e+08 1.0e-05 1.5e+01]
2nd Masked array : [100000000.0 1e-05 --]
Output array : False
代码#2:
# importing numpy as geek
# and numpy.ma module as ma
import numpy as geek
import numpy.ma as ma
# creating 1st input array
in_arr1 = geek.array([2e8, 3e-5, -45.0])
print ("1st Input array : ", in_arr1)
# Now we are creating 1st masked array by making third entry as invalid.
mask_arr1 = ma.masked_array(in_arr1, mask =[0, 0, 1])
print ("1st Masked array : ", mask_arr1)
# creating 2nd input array
in_arr2 = geek.array([2e8, 3e-5, 15.0])
print ("2nd Input array : ", in_arr2)
# Now we are creating 2nd masked array by making third entry as invalid.
mask_arr2 = ma.masked_array(in_arr2, mask =[0, 0, 1])
print ("2nd Masked array : ", mask_arr2)
# applying MaskedArray.allequal method
out_arr = ma.allequal(mask_arr1, mask_arr2, fill_value = True)
print ("Output array : ", out_arr)
输出:
1st Input array : [ 2.0e+08 3.0e-05 -4.5e+01]
1st Masked array : [200000000.0 3e-05 --]
2nd Input array : [2.0e+08 3.0e-05 1.5e+01]
2nd Masked array : [200000000.0 3e-05 --]
Output array : True