J'ai un tableau numpy et je veux supprimer les 3 premiers éléments du tableau. J'ai essayé cette solution:
a = np.arange(0,10) i=0 while(i<3): del a[0] i=i+1
4 Réponses :
Les tableaux numpus ont une taille fixe, vous ne pouvez donc pas simplement supprimer un élément d'eux. Le moyen le plus simple d'atteindre ce que vous voulez est d'utiliser la tranchée: Ceci créera un nouveau tableau à partir du 4ème élément du tableau d'origine. P> pour certains scénarios , la tranchée n'est tout simplement pas suffisante. Si vous souhaitez créer un sous-réseau composé d'éléments spécifiques à partir du tableau d'origine, vous pouvez utiliser un autre tableau pour sélectionner les indices: p> si fondamentalement, a [[ 1,4,5]] code> retournera un tableau composé des éléments 1,4 et 5 de la matrice d'origine. P> P>
@Neil: Vous avez raison. C'était en fait ma première version, mais alors, pour une raison tordue, je l'ai changée à 4.
Pour être correct: la tranchée de base ne crée pas de nouveau tableau, mais une nouvelle vue sur les données sous-jacentes, voir docs.cipy.org/doc/numpy/reference/arrays.indexing.html , qui est une raison pour laquelle NUMPY est aussi rapide que le code C dans de nombreux cas.
@Rock: correct! J'avais cela confondu avec Python régulier, ce qui crée effectivement un nouveau tableau.
Si vous souhaitez remplacer les données sous-jacentes avec la vue, utilisez deepcopy code> dans la copie code> package "pour faire
a = de profondculy (A [3:]) Code>
Les tableaux numpus ne prennent pas en charge la suppression de l'élément. Pourquoi n'utilisez-vous pas simplement la tranchée pour atteindre ce que vous voulez?
Cela fonctionne pour moi: où "A" est vos tableaux numpus et k est la position de l'index que vous souhaitez supprimer. P> espère que cela aide. p> p>
Vous pouvez le convertir en liste, puis essayer des commandes de suppression régulières telles que POP, Del, par exemple.
a = np.array([1,2,3,4,5]) l = list(a) l.pop(3) l >>[1, 2, 3, 5]