Rog*_*ana 2 python numpy multidimensional-array
我有一个包含以下形式的气压值的三维数组:
[[[1000 1010]
[1005 990]]
[[950 960]
[955 940]]
[[900 910]
[905 890]]]
Run Code Online (Sandbox Code Playgroud)
该结构表示不同级别的压力,因此 2-d 中的每个元素都是为每一层排序的。
我想知道每个 2d 元素的压力是 950 的哪个级别,获得一个 2-d 数组,其中包含每个元素的级别索引。
在一个一维数组中
a = [890, 940, 990]
Run Code Online (Sandbox Code Playgroud)
我会用
a.searchsorted(950)
Run Code Online (Sandbox Code Playgroud)
结果为 2,表示 950 将排在第 3 位。
有没有办法一次为我的所有数组执行此操作,而不必为每个二维元素执行此操作?
您可以沿输入数组的轴应用 searchsorted 函数,如下所示:
numpy.apply_along_axis(lambda a: a.searchsorted(950), axis = 1, arr = air_pr)
Run Code Online (Sandbox Code Playgroud)
如果我正确理解你,这应该会产生预期的结果。