Numpy 计算多维数据数组中某个值的百分位秩
在xarray中,我有以下三维数据数组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], ..., [
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”的百分位排名。