如何做一个简单的ndarray索引操作
How to do a simple ndarray indexing operation
我正在尝试使用 numpy 的 "indexing with an array" 功能。
鉴于此代码:
import numpy as np
x = np.array([[10, 20, 30], [40, 50, 60]])
index = ???
print(x[index])
我要打印:[10, 50]
也就是说,我想找到将从矩阵中的两个连续行中获取的正确形状数组。
index = np.array([0, 1])
index = np.array([[0], [1]])
两者都打印:
[10, 20] 和 [[10], [20]]
对于这些情况,所有索引行都"broadcasted"到目标的第一行。这是没有意义的。从矩阵的连续行中索引出来的正确技术是什么?
两个维度都可以传递
x[np.arange(len(x)),[0,1]]
Out[137]: array([10, 50])
我正在尝试使用 numpy 的 "indexing with an array" 功能。
鉴于此代码:
import numpy as np
x = np.array([[10, 20, 30], [40, 50, 60]])
index = ???
print(x[index])
我要打印:[10, 50]
也就是说,我想找到将从矩阵中的两个连续行中获取的正确形状数组。
index = np.array([0, 1])
index = np.array([[0], [1]])
两者都打印: [10, 20] 和 [[10], [20]]
对于这些情况,所有索引行都"broadcasted"到目标的第一行。这是没有意义的。从矩阵的连续行中索引出来的正确技术是什么?
两个维度都可以传递
x[np.arange(len(x)),[0,1]]
Out[137]: array([10, 50])