使用高级 NumPy 技术对数组进行索引
在各种计算场景中,有必要根据一个数组的值对另一个数组进行索引。考虑我们有两个矩阵的示例:具有任意值的 A 和包含索引的 B。目标是从 A 中选择由 B 中的索引确定的值。
为了实现此目的,NumPy 提供了不同的索引方法:
1.高级索引:
A[np.arange(A.shape[0])[:, None], B]
此索引方法使用 np.arange 初始化一个新数组,为每行创建列索引。然后,它使用这些行索引作为第一个维度,使用 B 中的值作为第二个维度,从 A.
2 中提取值。线性索引:
m, n = A.shape out = np.take(A, B + n * np.arange(m)[:, None])
或者,您可以使用线性索引,其中 m 和 n 表示 A 的形状。它使用 np.take 根据组合数组 B 以及通过将 n 与 np.arange 中的行索引相乘创建的索引偏移量来选择元素.
以上是如何使用高级 NumPy 技术高效索引数组?的详细内容。更多信息请关注PHP中文网其他相关文章!