0
A = np.random.randn(4,32)
inds = np.random.randint(4,size=32)
res = A[inds,np.arange(32)]
這得到期望的結果,但是相當麻煩的。有更簡單的方法來獲得這種行爲? (例如,使用高級索引)
A = np.random.randn(4,32)
inds = np.random.randint(4,size=32)
res = A[inds,np.arange(32)]
這得到期望的結果,但是相當麻煩的。有更簡單的方法來獲得這種行爲? (例如,使用高級索引)
inds = np.random.randint(4,size=32)
result=[]
for i in range(0,len(inds):
result.append(A[inds[i],i])
print result
res = A[inds,np.arange(32)]
上面正好使用與numpy的INDS是所述行指數和np.arange(32)是所述列索引被提取高級索引。
你的更高級的解決方案是什麼?
那麼,你用'A [inds,np.arange(32)]'做的操作名稱是什麼? – Divakar
提示:它與「侵佔」押韻 –
'inds'包含所需行的陣列,每列一個。只要執行'A [inds]',就會得到每個所需行的* all *列,因此需要使用'np.arange'。 – zergylord