Numpy 计算多维数据数组中某个值的百分位秩

Numpy 计算多维数据数组中某个值的百分位秩,numpy,scipy,python-xarray,Numpy,Scipy,Python Xarray,在xarray中,我有以下三维数据数组vwc,带有时间、纬度和经度 <xarray.DataArray 'VWC' (time: 16436, latitude: 106, longitude: 193)> array([[[ 4.537527, 4.586913, ..., 5.120861, 5.542567], [ 4.741828, 4.741827, ..., 4.930689, 5.693698], ..., [

在xarray中,我有以下三维数据数组
vwc
,带有
时间
纬度
经度

<xarray.DataArray 'VWC' (time: 16436, latitude: 106, longitude: 193)>
array([[[ 4.537527,  4.586913, ...,  5.120861,  5.542567],
        [ 4.741828,  4.741827, ...,  4.930689,  5.693698],
        ...,
        [ 9.545872,  8.681304, ...,  4.581591,  5.490883],
        [10.35586 ,  9.848556, ...,  4.95035 ,  5.419432]],

       [[ 9.337118,  9.496598, ..., 16.893394, 16.874586],
        [ 9.223562,  9.411149, ..., 16.672445, 17.068016],
        ...,
        [ 7.645049,  7.807   , ...,  6.727722,  9.154998],
        [ 8.22339 ,  8.513931, ...,  5.427549,  7.602291]],

       ...,

       [[ 5.752615,  5.445625, ...,  4.107596,  4.543602],
        [ 6.709205,  6.498062, ...,  4.02037 ,  4.55328 ],
        ...,
        [16.67159 , 18.651648, ...,  7.272799,  6.543073],
        [14.757328, 14.930978, ...,  7.646502,  6.919951]],

       [[ 5.468747,  5.749045, ...,  2.450518,  2.36287 ],
        [ 5.763913,  5.773948, ...,  2.760434,  2.681414],
        ...,
        [12.102039, 12.021021, ...,  4.633275,  5.042778],
        [ 9.283951, 13.921013, ...,  4.446116,  4.824095]]], dtype=float32)
Coordinates:
  * time       (time) datetime64[ns] 1972-12-01 1972-12-02 ... 2017-11-30
  * latitude   (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
  * longitude  (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0

数组([[4.537527,4.586913,…,5.120861,5.542567],
[ 4.741828,  4.741827, ...,  4.930689,  5.693698],
...,
[ 9.545872,  8.681304, ...,  4.581591,  5.490883],
[10.35586 ,  9.848556, ...,  4.95035 ,  5.419432]],
[[ 9.337118,  9.496598, ..., 16.893394, 16.874586],
[ 9.223562,  9.411149, ..., 16.672445, 17.068016],
...,
[ 7.645049,  7.807   , ...,  6.727722,  9.154998],
[ 8.22339 ,  8.513931, ...,  5.427549,  7.602291]],
...,
[[ 5.752615,  5.445625, ...,  4.107596,  4.543602],
[ 6.709205,  6.498062, ...,  4.02037 ,  4.55328 ],
...,
[16.67159 , 18.651648, ...,  7.272799,  6.543073],
[14.757328, 14.930978, ...,  7.646502,  6.919951]],
[[ 5.468747,  5.749045, ...,  2.450518,  2.36287 ],
[ 5.763913,  5.773948, ...,  2.760434,  2.681414],
...,
[12.102039, 12.021021, ...,  4.633275,  5.042778],
[9.283951,13.921013,…,4.446116,4.824095]],数据类型=float32)
协调:
*时间日期时间64[ns]1972-12-01 1972-12-02。。。2017-11-30
*纬度32-39.2-39.149525-33.950478 -33.9
*经度(经度)浮动32140.8140.84792140.89584。。。149.95209 150.0
我需要为每个季节的每个网格点(纬度、经度)计算
VWC
=22的百分位等级,即SON(九月、十月、十一月)、DJF(十二月、一月、二月)、MAM(三月、四月、五月)、JJA(六月、七月、八月)


我检查了scipy.stats.percentileofscore函数,但这个函数似乎不适用于沿
时间
维度的多个数组。

需要更多的函数。输入和预期输出是什么?输入是一个名为vwc(浮点数据类型)的三维数组,浮点值为“22.0”。我需要沿着“时间”维度检查“22.0”的百分位排名。