Numpy索引:获取每列的特定行

时间:2017-05-10 19:22:05

标签: python numpy indexing

例如:

A = np.random.randn(4,32)
inds = np.random.randint(4,size=32)
res = A[inds,np.arange(32)]

这会得到理想的结果,但相当麻烦。是否有更简单的方法来获得这种行为? (例如使用高级索引)

2 个答案:

答案 0 :(得分:0)

inds = np.random.randint(4,size=32)
result=[]
for i in range(0,len(inds):
    result.append(A[inds[i],i])
    print result

答案 1 :(得分:0)

res = A[inds,np.arange(32)] 

以上是使用numpy高级索引,其中inds是行索引,np.arange(32)是要提取的列索引。

您的更高级解决方案是什么?