0
votes

Comment couper une matrice multidimensionnelle avec un autre réseau multidimensionnel?

J'ai, disons, un tableau 2D: xxx pré>

et un autre avec index: p> xxx pré>

Comment puis-je trancher chacun Rangée de x em> à l'aide des index de chaque ligne respective de a em> sans utiliser de boucle afin d'obtenir: p>

[[4, 5]
 [8, 9]]


0 commentaires

3 Réponses :


0
votes

Vous pouvez utiliser numpy.take_along_axis xxx

ou ajouter manuellement la première coordonnée (diffusion de la diffusion) xxx < / p>


0 commentaires

2
votes

Essayez ceci:

import numpy as np
x = np.array([[4, 5, 6],
              [7, 8, 9]])
a = np.array([[0, 1],
              [1, 2]])
print(np.take_along_axis(x,a,1))


0 commentaires

0
votes

Je sais que c'est techniquement une boucle, mais vous pouvez le faire en une ligne avec une compréhension de la liste.

print(np.array([x[i][a[i]] for i in range(0, x.shape[0])]))


0 commentaires