首页  >  文章  >  后端开发  >  如何使用整数数组索引从 NumPy 数组中提取元素?

如何使用整数数组索引从 NumPy 数组中提取元素?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-12 18:04:02734浏览

How to Extract Elements from a NumPy Array Using Integer Array Indexing?

使用 NumPy 数组进行索引提取

在 NumPy 中处理多维数组时,通常需要根据索引提取特定元素。在这方面,可能会出现某些情况,其中一个数组 (B) 充当另一个数组 (A) 第二维的索引。

考虑一个具有两个数组 A 和 B 的示例:

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

我们的目标是从A的每一行中提取一个元素,其中元素索引由B中对应的元素决定。期望的输出是:

C = np.array([[1],
              [2],
              [5]])

使用整数数组索引的解决方案:

我们可以使用 NumPy 的纯整数数组索引来代替广播 B:

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

这里,np.arange(A.shape[0]) 创建了一个对应于的索引数组A 中的行数,而 B.ravel() 将 B 展平为一维数组。通过组合这些,我们可以从 A 中提取适当的元素。

示例运行:

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

输出:

[[0 1]
 [2 3]
 [4 5]]
[[1]
 [0]
 [1]]
[1 2 5]

这种方法为我们的提取问题提供了简洁高效的解决方案。

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

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