2
votes

Comment supprimer un élément vide du tableau numpy

Voici un exemple:

array([[1, 2, 3, 4], [1, 2, 0, 9]], dtype=object)

Comment supprimer l'élément vide et le renvoyer uniquement:

a = np.array([[1, 2, 3,4], [], [1,2,0,9]]) 

print(a)
# array([list([1, 2, 3, 4]), list([]), list([1, 2, 0, 9])], dtype=object)


0 commentaires

4 Réponses :


1
votes

Vous pouvez faire une boucle sur le tableau: -

a = np.array([[1, 2, 3,4], [], [1,2,0,9]]) 
a1 = np.array([i for i in a if i])

>>> a1
array([[1, 2, 3, 4],
       [1, 2, 0, 9]])


0 commentaires

0
votes

Une simple itération de boucle for sur le tableau et la longueur de calcul sera suffisante pour se débarrasser des éléments vides.

a = np.array([[1,2,3,4],[],[5,6,7,8]]
output = []
for elem in a:
    if elem:
          output.append(elem)
output= np.array(output)


2 commentaires

Quelle est la forme et le type de la sortie ? Par rapport à l'original a ?


La sortie serait un tableau numpy, de forme: (numpy.ndarray, (2, 4))



1
votes

vous pouvez utiliser le filtre:

a = np.array([[1, 2, 3,4], [], [1,2,0,9]]) 
list(filter(None, a))

# [[1, 2, 3, 4], [1, 2, 0, 9]]


0 commentaires

6
votes

Vous pouvez utiliser l'indexation logique:

a[a.astype(bool)]
# array([list([1, 2, 3, 4]), list([1, 2, 0, 9])], dtype=object)


0 commentaires