0
votes

Sélectionnez Utiliser plusieurs tableaux d'indices à partir d'un ndarray dans Numpy

Dites si j'ai un tableau 2D: xxx pré>

et sélectionnez les 2e et 3ème éléments du 1er, 3ème et 5ème tableau, comme: P>

y[np.array([0,2,4]), np.array([1,2])]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (3,) (2,)


5 commentaires

Vous devez utiliser une liste, comme vous l'avez fait avec la première dimension.


Comme vous pouvez le constater, cela ne fonctionne pas, les matrices d'indexation n'ont pas pu être diffusées ensemble


Je vois où vous utilisez une liste et un tableau; Je ne vois pas où vous avez utilisé deux listes.


N'oubliez-vous de donner un exemple de ce que vous voulez dire, je ne suis pas sûr de suivre?


La diffusion avec des indices est la même qu'avec addition ou la multiplication. np.array ([1,2]) [:, aucun] + np.array ([1,2,3]) produit une (2,3) somme. arr [np.array ([1,2]) [:, NONE], np.array ([1,2,3])] indexe A (2,3) bloc.


4 Réponses :


0
votes

y [np.array ([0,2,4]), np.array ([[[[1], [2]])]. T


0 commentaires

0
votes

Vous pouvez essayer d'utiliser ce Y [np.array ([[0,2,4]] * 2), np.array ([[[1] * 3, [2] * 3])] .T


0 commentaires

0
votes

Quick et sale moyen de l'atteindre avec une double indexation.

y[np.array([0,2,4]),:][:,np.array([1,2])]


0 commentaires

2
votes

np.ix_ () est conçu pour ce type de problème. xxx


0 commentaires