슬라이스 객체를 통해 2D numpy 배열 업데이트 [중복]

Dec 02 2020

그래서 저는 일반적으로 numpy 및 프로그래밍에 익숙하지 않으며 슬라이스 인 다른 배열을 통해 numpy 배열을 변경할 수있는 방법이 있는지 확인했습니다. 예를 들어 다음과 같습니다.

>>> import numpy as np
>>> a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
>>> a
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

이제 '8'을 2로 포함하여 모든 값을 곱하고 싶으므로 슬라이스 b를 가져 와서 다음과 같이 변경합니다.

>>> y, x = 1, 2
>>> b = a[y-1:y+2, x-1:x+2]
>>> for i in range(len(b)):
        for x in range(len(b[i])):
            b[i][x] *= 2
>>> b
    array([[ 4,  6,  8],
           [14, 16, 18],
           [24, 26, 28]])

이제 배열 a에서 이러한 값을 변경하고 싶습니다. 어떻게해야합니까?

답변

adirabargil Dec 02 2020 at 13:08

시도해 보았 니:

 a[y-1:y+2, x-1:x+2] = a[y-1:y+2, x-1:x+2]*2