numpy.searchsorted in a multidimensional array

时间:2013-07-19 12:34:28

标签: python numpy multidimensional-array

我有一个带有气压值的三维数组:

[[[1000 1010]
  [1005 990]]

[[950 960]
 [955 940]]

[[900 910]
[905 890]]]

结构代表不同层次的压力,因此每个层中的每个元素都按顺序排列。

我想知道每个2d元素的压力为950,获得每个元素的水平索引的2-d数组。

在像

这样的一维数组中
a = [890, 940, 990]

我会用

a.searchsorted(950)

,结果为2,表示950将进入第3位。

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

1 个答案:

答案 0 :(得分:4)

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

numpy.apply_along_axis(lambda a: a.searchsorted(950), axis = 1, arr = air_pr)
如果我理解正确的话,

会产生预期的结果。