0
votes

Supprimer plus d'une ligne à la fois python numpy

Je veux supprimer toute ligne après la deuxième ligne, cependant, lorsque j'essaie d'appliquer le code suivant, la fonction supprime uniquement les troisième et les 5ème rangées et conserver une idée de la manière de l'améliorer sans faire de boucle xxx


2 commentaires

arr1 [: 2] doit renvoyer les 2 premières lignes.


Avec Supprimer Vous devez répertorier toutes les lignes que vous souhaitez supprimer, pas seulement les points de fin.


3 Réponses :


0
votes

Vous pouvez simplement passer un tuple comme deuxième argument.

>>> Arr = array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> delete(Arr, (0, 2), axis=0)
array([[4, 5, 6]])


4 commentaires

Merci pour votre réponse, je ajuste le message et expliquez le problème dans plus de détails Pouvez-vous le regarder à nouveau


Fait. BTW, ce n'est pas une erreur mais un avertissement. La différence est que l'avertissement n'arrête pas l'exécution de votre code. Cependant, il est important que vous compreniez pourquoi vous obtenez cet avertissement si vous souhaitez comprendre quelle fonction Supprimer réellement.


merci que c'était ma erreur que l'index maximum est 4 non 5, mais toujours ce n'est pas ce que je veux, je veux supprimer toutes les lignes après la deuxième ligne, la fonction ne supprime que la 3ème et la 5ème rangée et conserve la 4ème rangée et conserve la 4ème rangée.


Vous souvenez-vous que dans Python, les tableaux sont indexés à partir de 0? La 4ème colonne a indice 3 , le premier 0 .



0
votes

J'ai utilisé le code suivant et ça fonctionne bien xxx


0 commentaires

0
votes

Si les données que vous souhaitez supprimer sont contiguës (comme dans votre exemple), l'utilisation d'une indexation de tableau de numpy est sans doute le moyen le plus simple d'atteindre ce que vous voulez.

import numpy as np 

arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2 = np.array([[10, 11, 12], [13, 14, 15]])
arr3 = np.r_[arr1, arr2]

# First dimension corresponds to rows, second dimension corresponds to columns. 
print(arr3[:2, :])


0 commentaires