【发布时间】:2018-02-06 19:36:52
【问题描述】:
我正在尝试使用 scipy.stats.percentileofscore() 沿 3d numpy 数组的 z 轴计算百分位数,分数在 2d 数组中。
例如,我的 3d 数组可能如下所示:
data = array([[[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 2., 2., 2.],
[ 2., 2., 2.],
[ 2., 2., 2.]],
[[ 3., 3., 3.],
[ 3., 3., 3.],
[ 3., 3., 3.]]])
计算百分位数的分数可能如下所示:
scores = array([[ 1., 1., 2.],
[ 1., 1., 2.],
[ 1., 1., 2.]])
我想以这种方式在每个位置(m,n)申请percentileofscore():
percentileofscore(data[:,m,n], scores[m,n])
结果是这样的:
array([[ 33.33, 33.33, 66.66],
[ 33.33, 33.33, 66.66],
[ 33.33, 33.33, 66.66]])
我可以使用嵌套循环来做到这一点,但我将其应用于大型数组,因此需要更优化的方法。我很难弄清楚如何实现这一点。
【问题讨论】:
标签: python arrays numpy 3d scipy