2017-08-24 6 views
-1

Si j'ai:Comment construire ensemble d'indices pour référencer un tableau

x = np.asarray([[1,2],[3,4],[5,6]]) 

Et je voudrais créer:

y = np.asarray([1,4,5]) 

Pour ce faire, je construit un tableau comme suit :

inds = np.asarray([[0,0],[1,1],[2,0]]) 

Et je l'ai passé à x comme suit:

y = x[inds] 


Cela ne donne pas les éléments indexés par les lignes de inds. Comment puis-je réaliser cette fonctionnalité de cette façon, ou d'une mode très similaire à cela?

+1

'x [tuple (inds.T)]'? –

Répondre

1

C'est ce que advanced indexing pour; Extraire l'index de ligne et l'indice de colonne en deux réseaux séparés et les utiliser pour des sous-ensembles du réseau:

x[inds[:,0], inds[:,1]] 
# array([1, 4, 5])