0
votes

Python / Numpy: Recherchez le premier index de zéro, puis remplacez tous les éléments avec zéro après cela pour chaque ligne

J'ai un tableau NUMPY comme celui-ci:

a = np.array([[1, 0, 0, 0, 0],
              [1, 1, 1, 1, 0],
              [1, 0, 0, 0, 0],
              [1, 0, 0, 0, 0]])


0 commentaires

4 Réponses :


0
votes

question 1 strong>: Vous pouvez itérer sur le tableau comme si:

b = np.zeros(a.shape)
for i in range(a.shape[0]):
    j = 0
    a_row = a[i]
    b_row = b[i]
    while a_row[j]>0:
        b_row[j] = a_row[j]
        j += 1


0 commentaires

0
votes

question 1 strong>: un moyen efficace de faire ce serait ce qui suit serait le suivant.

[0 1 1]


0 commentaires

3
votes

1 commentaires

Je ne suis pas sûr de la vitesse / de l'efficacité de cela, mais c'est beau, bonne idée.



0
votes

Je préfère la réponse créative d'Ayrat pour la première question, mais si vous devez trancher différentes colonnes pour différentes lignes de grande taille, cela pourrait vous aider:

[[1 0 0 0 0]
 [1 1 1 1 0]
 [1 0 0 0 0]
 [1 0 0 0 0]]


0 commentaires