Comment réorganiser tableau basé sur l'indice de tableau
Je suis à la recherche d'une solution en ligne qui pourrait m'aider à faire ce qui suit.
Supposons que j'ai
array = np.array([10, 20, 30, 40, 50])
J'aimerais réorganiser basée sur une entrée de commande. Si il y avait un numpy fonction appelée arrange
, elle serait la suivante:
newarray = np.arrange(array, [1, 0, 3, 4, 2])
print newarray
[20, 10, 40, 50, 30]
Formellement, si le tableau de réorganisation est de m x n, et l ' "indice" de la matrice est 1 x n, l'ordre sera déterminé par le tableau appelé "index".
Ne numpy ont une fonction comme ceci?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement utiliser votre "index" liste directement, comme, bien, un index de tableau:
Il a tendance à être beaucoup plus rapide si
idx
est déjà unndarray
et pas unlist
, même si cela fonctionnera de la manière suivante:[[1,2], ["a", "b"]
en[[2,1], ["a", "b"]]
par l'utilisation de l'indice[[1,0], [0,1]]
. Je sais une vilaine façon de le faire est d'utiliser pour la boucle de ré-organiser chaque ligne de la matrice à l'aide de la ligne correspondante de l'indice de tableau. Mais il doit bien y avoir un moyen plus rapide.idx
ne peut pas être un n-uplet. C'était en quelque sorte contre-intuitif, mais votre solution fonctionne parfaitement. Mercipour les personnes dont l'indice de tableau 2d, vous pouvez utiliser la fonction map.
Voici un exemple:
la sortie est
Si vous souhaitez faire le tri, mais décroissant: