dlaczego poniższe linie nie działają tak jak oczekuję?Dlaczego nie działa zadanie dla podwójnie pokrojonych tablic numpy?
import numpy as np
a = np.array([0,1,2,1,1])
a[a==1][1:] = 3
print a
>>> [0 1 2 1 1]
# I would expect [0 1 2 3 3]
Czy jest to "błąd", czy jest inny zalecany sposób na to?
Z drugiej strony, następujące prace:
a[a==1] = 3
print a
>>> [0 3 2 3 3]
Cheers Philipp
Dodałem drugi przykład, który działa tak, jak oczekuję. Naprawdę nie widzę różnicy. Czy zadanie nie powinno być "przepuszczone"? –
Nie sądzę, że to jest w porządku. Jeśli zrobisz 'a [== 1] = 3', to faktycznie zmieni zawartość a. –
@Dave - Myślę, że to perimosocodiae jest poprawne, a twój kontrprzykład jest spowodowany czymś bardziej podobnym do hackowania w numpy internals, aby stworzyć wygląd operacji w miejscu. – tom10