Python 掩模numpy阵列给定轴的计算模式
我想计算numpy数组中列的模式,计算中不包括特定值(0) numpy数组示例:Python 掩模numpy阵列给定轴的计算模式,python,numpy,scipy,Python,Numpy,Scipy,我想计算numpy数组中列的模式,计算中不包括特定值(0) numpy数组示例: n=np.array([[0,2,1], [0,1,3], [1,2,3]]) >array([[0, 2, 1], [0, 1, 3], [1, 2, 3]]) 为值不等于0的位置创建掩码 m_mask = n != 0 >array([[False, True, True], [False, True, True], [ True, True, True
n=np.array([[0,2,1], [0,1,3], [1,2,3]])
>array([[0, 2, 1],
[0, 1, 3],
[1, 2, 3]])
为值不等于0的位置创建掩码
m_mask = n != 0
>array([[False, True, True],
[False, True, True],
[ True, True, True]])
应用遮罩并计算轴0上的平均值:
from scipy.stats import mode
new_m = np.ma.array(n, mask = m_mask)
m=mode(new_m, axis=0)
m[0] #access the values not the count
>array([[0, 2, 3]])
似乎scipy.stats.mean可能忽略了屏蔽数组
关于如何实现这一点有什么想法吗?我认为np.ma.array(…)
不适合这里。您可以替换您指定的new\m
行:
new_m=np.where(m_mask,n,np.nan)
(scipy.mode(…)
将忽略nan-s)。
输出:
[[1.2.3.]]
我认为np.ma.array(…)
不适合这里。您可以替换您指定的new\m
行:
new_m=np.where(m_mask,n,np.nan)
(scipy.mode(…)
将忽略nan-s)。
输出:
[[1.2.3.]]