NumPy:如何根据某些条件确定 ndarray 的第一个轴的索引?
NumPy : How to determine the index of the first axis of an ndarray according to some condition?
考虑以下 ndarray a
-
In [117]: a
Out[117]:
array([[[nan, nan],
[nan, nan],
[nan, nan]],
[[ 3., 11.],
[ 7., 13.],
[12., 16.]],
[[ 0., 4.],
[ 6., 1.],
[ 5., 8.]],
[[17., 10.],
[15., 9.],
[ 2., 14.]]])
第一个轴上计算的最小值是 -
In [118]: np.nanmin(a, 0)
Out[118]:
array([[0., 4.],
[6., 1.],
[2., 8.]])
目测 a[2]
。计算该指数的最有效方法是什么2
根据@Divakar 的建议,您可以使用 np.nanargmin
import numpy as np
a = np.array([[[np.nan, np.nan],
[np.nan, np.nan],
[np.nan, np.nan]],
[[ 3., 11.],
[ 7., 13.],
[12., 16.]],
[[ 0., 4.],
[ 6., 1.],
[ 5., 8.]],
[[17., 10.],
[15., 9.],
[ 2., 14.]]])
minIdx = np.nanargmin(np.sum(a,(1,2)))
minIdx
2
a[minIdx]
array([[0., 4.],
[6., 1.],
[5., 8.]])
考虑以下 ndarray a
-
In [117]: a
Out[117]:
array([[[nan, nan],
[nan, nan],
[nan, nan]],
[[ 3., 11.],
[ 7., 13.],
[12., 16.]],
[[ 0., 4.],
[ 6., 1.],
[ 5., 8.]],
[[17., 10.],
[15., 9.],
[ 2., 14.]]])
第一个轴上计算的最小值是 -
In [118]: np.nanmin(a, 0)
Out[118]:
array([[0., 4.],
[6., 1.],
[2., 8.]])
目测 a[2]
。计算该指数的最有效方法是什么2
根据@Divakar 的建议,您可以使用 np.nanargmin
import numpy as np
a = np.array([[[np.nan, np.nan],
[np.nan, np.nan],
[np.nan, np.nan]],
[[ 3., 11.],
[ 7., 13.],
[12., 16.]],
[[ 0., 4.],
[ 6., 1.],
[ 5., 8.]],
[[17., 10.],
[15., 9.],
[ 2., 14.]]])
minIdx = np.nanargmin(np.sum(a,(1,2)))
minIdx
2
a[minIdx]
array([[0., 4.],
[6., 1.],
[5., 8.]])