1
votes

Tableau Numpy: PAS sélectionner des lignes ou des colonnes spécifiques

J'ai un simple tableau numpy. Je souhaite sélectionner toutes les lignes sauf les 1ère et 6ème J'ai essayé:

 TypeError: bad operand type for unary ~: 'list'

J'obtiens l'erreur suivante:

temp = np.array([1,2,3,4,5,6,7,8,9])
t = temp[~[0,5]]

Quelle est la bonne façon de procéder?

p>


3 Réponses :


0
votes

Vous ne pouvez pas créer les indices de cette façon. Au lieu de cela, vous pouvez créer une plage de nombres de 0 à temp.size et supprimer les index indésirables:

In [16]: ind = np.concatenate((np.arange(1, 5), np.arange(6, temp.size)))

In [17]: temp[ind]
Out[17]: array([2, 3, 4, 5, 7, 8, 9])

Ou simplement le créer comme suit:

XXX


0 commentaires

-1
votes

Vous pouvez utiliser np.r_ objet numpy qui concatène le tableau en en les décomposant en utilisant les indices donnant la sortie résultante.

np.r_[temp[1:5], temp[6:]]

Le code ci-dessus concatène les deux tableaux qui sont découpés à partir du tableau d'origine et donc du tableau résultant sans le indices spécifiés.


0 commentaires

0
votes

Vous pouvez utiliser numpy.delete pour supprimer des éléments à une position d'index spécifique:

bool_idx = np.zeros(len(temp), dtype=bool)
bool_idx[[0, 5]] = True
t = temp[~bool_idx]

Ou vous pouvez créer un tableau booléen, qu'il est possible de nier les indices:

t = np.delete(temp, [0, 5])


0 commentaires