首页 >后端开发 >Python教程 >如何使用整数数组索引根据另一个数组中的索引从一个数组中提取元素?

如何使用整数数组索引根据另一个数组中的索引从一个数组中提取元素?

Linda Hamilton
Linda Hamilton原创
2024-11-09 02:55:02867浏览

How to Extract Elements from an Array Based on Indices in Another Array Using Integer Array Indexing?

利用整数数组索引根据辅助数组索引提取元素

在给定的场景中,目标是从数组 A 使用第二个数组 B 中指定的索引。不依赖 np.take 或 np.choose,更直接的方法是使用NumPy 的整数数组索引:

A[np.arange(A.shape[0]),B.ravel()]

以下是此代码如何实现所需结果的:

  • np.arange(A.shape[0]) 从 0 创建索引数组到 (A.shape[0] - 1),代表 A.
  • B.ravel() 的行将 B 展平为一维数组,确保它具有与 A 中的行相同数量的元素。
  • 索引操作 A[...] 使用以下行索引和列索引检索 A 中的元素B.

当 B 是一维数组或列索引列表时,此方法特别有用。通过跳过展平操作,代码变得更加简单:

A[np.arange(A.shape[0]),B]

示例:

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([1, 0, 1])

result = A[np.arange(A.shape[0]), B]

print(result)
# Output: [1, 2, 5]

以上是如何使用整数数组索引根据另一个数组中的索引从一个数组中提取元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn