Dites si j'ai un tableau 2D: 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,)
4 Réponses :
y [np.array ([0,2,4]), np.array ([[[[1], [2]])]. T code> p>
Vous pouvez essayer d'utiliser ce Y [np.array ([[0,2,4]] * 2), np.array ([[[1] * 3, [2] * 3])] .T code> p>
Quick et sale moyen de l'atteindre avec une double indexation.
y[np.array([0,2,4]),:][:,np.array([1,2])]
np.ix_ () est conçu pour ce type de problème.
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 code> avec des indices est la même qu'avec addition ou la multiplication.np.array ([1,2]) [:, aucun] + np.array ([1,2,3]) code> produit une (2,3) somme.arr [np.array ([1,2]) [:, NONE], np.array ([1,2,3])] code> indexe A (2,3) bloc.