jax.numpy.nanargmax#

jax.numpy.nanargmax(a, axis=None, out=None, keepdims=None)[源代码]#

返回数组中最大值的索引,忽略 NaN 值。

JAX 实现的 numpy.nanargmax()

参数:
  • a (ArrayLike) – 输入数组

  • axis (int | None | None) – 可选整数,指定沿哪个轴查找最大值。如果未指定 axis,则 a 将被展平。

  • out (None | None) – JAX 未使用

  • keepdims (bool | None | None) – 如果为 True,则返回一个与 a 具有相同维数的数组。

返回值:

一个数组,包含指定轴上最大值的索引。

返回类型:

数组

注意

如果轴上的所有值均为 NaN,则返回的索引将为 -1。这与 numpy.nanargmax() 的行为不同,后者会引发错误。

另请参阅

示例

>>> x = jnp.array([1, 3, 5, 4, jnp.nan])

使用标准的 argmax() 可能会导致意想不到的结果

>>> jnp.argmax(x)
Array(4, dtype=int32)

使用 nanargmax 返回最大非 NaN 值的索引。

>>> jnp.nanargmax(x)
Array(2, dtype=int32)
>>> x = jnp.array([[1, 3, jnp.nan],
...                [5, 4, jnp.nan]])
>>> jnp.nanargmax(x, axis=1)
Array([1, 0], dtype=int32)
>>> jnp.nanargmax(x, axis=1, keepdims=True)
Array([[1],
       [0]], dtype=int32)