numpy.searchsorted 在一个多维数组中

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 位。

有没有办法一次为我的所有数组执行此操作,而不必为每个二维元素执行此操作?

w-m*_*w-m 5

您可以沿输入数组的轴应用 searchsorted 函数,如下所示:

numpy.apply_along_axis(lambda a: a.searchsorted(950), axis = 1, arr = air_pr)
Run Code Online (Sandbox Code Playgroud)

如果我正确理解你,这应该会产生预期的结果。