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]])
4 Réponses :
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
question 1 strong>: un moyen efficace de faire ce serait ce qui suit serait le suivant. [0 1 1]
Un moyen d'accomplir la question 1 est d'utiliser NUMPY.CumProd A > >>> np.cumprod(a, axis=1)
array([[1, 0, 0, 0, 0],
[1, 1, 1, 1, 0],
[1, 0, 0, 0, 0],
[1, 0, 0, 0, 0]])
Je ne suis pas sûr de la vitesse / de l'efficacité de cela, mais c'est beau, bonne idée.
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]]