В python есть разница между объектом и переменной. Переменная - это имя, присвоенное объекту; и объект может иметь более одного имени в памяти.
Делая pic1 = pic; pic2 = pic
, вы присваиваете один и тот же объект нескольким различным именам переменных, так что в итоге вы модифицируете один и тот же объект.
Вам нужно создать копии, используя np.ndarray.copy
-
pic1 = pic.copy()
pic2 = pic.copy()
Или, совсем аналогично, используя np.copy
-
pic1, pic2 = map(np.copy, (pic, pic))
Этот синтаксис на самом деле позволяет действительно легко клонировать pic
столько раз, сколько вам нужно:
pic1, pic2, ... picN = map(np.copy, [pic] * N)
Где N
- количество копий, которое вы хотите создать.