目录
当从数据中得到了带有掩膜的数组,我们通常想要带着掩膜一起操作。但numpy的常规操作很多时候难以将掩膜带到结果中。
-
建立masked array
import numpy as np
a = np.ma.array([1, 2, 3], mask = [0, 1, 0])
'''
a
masked_array(data=[1, --, 3],
mask=[False, True, False],fill_value=999999)
'''
b = np.ma.array([4, 5, 6], mask = [1, 0, 0])
'''
b
masked_array(data=[--, 5, 6],
mask=[ True, False, False],fill_value=999999)
'''
c = np.ma.array([[4, 5, 6],[7,8,9],[9,1,4],[8,7,4]],
mask = [[1, 0, 0],[0,1,0],[0,0,1],[0,1,0]])
'''
c
masked_array(
data=[[--, 5, 6],
[7, --, 9],
[9, 1, --],
[8, --, 4]],
mask=[[ True, False, False],
[False, True, False],
[False, False, True],
[False, True, False]],
fill_value=999999)
'''
-
横向合并masked array
#普通合并
np.hstack((a,b))
'''
masked_array(data=[1, 2, 3, 4, 5, 6],
mask=False,fill_value=999999)
'''
#带mask合并
np.ma.hstack((a,b))
'''
masked_array(data=[1, --, 3, --, 5, 6],
mask=[False, True, False, True, False, False],
fill_value=999999)
'''
-
纵向合并masked array
#普通合并
np.vstack((a,b))
'''
masked_array(
data=[[1, 2, 3],
[4, 5, 6]],
mask=False,fill_value=999999)
'''
#带mask合并
np.ma.vstack((a,b))
'''
masked_array(
data=[[1, --, 3],
[--, 5, 6]],
mask=[[False, True, False],
[ True, False, False]],fill_value=999999)
'''
-
分割masked array
np.vsplit(c,2)
'''
[masked_array(
data=[[--, 5, 6],
[7, --, 9]],
mask=[[ True, False, False],
[False, True, False]],
fill_value=999999),
masked_array(
data=[[9, 1, --],
[8, --, 4]],
mask=[[False, False, True],
[False, True, False]],
fill_value=999999)]
'''
-
官方网站参考
更多详细的信息可以参考官网如下: