Я не использую очень строгий смысл венгерской записи, но я действительно использую ее экономящий для некоторых общих пользовательских объектов помочь определить их, и также я склонен снабжать префиксом gui объекты управления тип управления, которое они. Например, labelFirstName, textFirstName, и buttonSubmit.
Похоже, вы просто не можете выполнить присваивание с помощью такого двойного среза.
Это работает. хотя:
a[numpy.where(a==1)[0][1:]] = 3
Это связано с тем, как работает необычное индексирование. Подробное объяснение здесь . Это делается таким образом, чтобы разрешить модификацию на месте с причудливой индексацией (например, a [x> 3] * = 2
). Следствием этого является то, что вы не можете присвоить двойной индекс, как вы нашли. Модное индексирование всегда возвращает копию, а не представление.
Потому что часть a [a == 1] на самом деле не является срезом. Создает новый массив.