넘파이 데이터 변수[ ]에 연산을 넣으면 해당 연산에 맞는 값을 출력해준다
>>> X
array([[16, 47, 97, 57, 73],
[41, 12, 90, 83, 84],
[ 6, 98, 20, 43, 78],
[65, 19, 40, 5, 64]])
>>> X > 70
array([[False, False, True, False, True],
[False, False, True, True, True],
[False, True, False, False, True],
[False, False, False, False, False]])
>>> (X > 70).sum()
7
>>> X[X>70]
array([97, 73, 90, 83, 84, 98, 78])
[ ] 특정값만 잘라서 가져오는 슬라이싱을 하려면 콤마의 왼쪽이 행, 오른쪽에 열을 적어준다
>>> X[2][1]
98
>>> X[2, 1] # , 기준 왼쪽은 행 오른쪽은 열
98
콜론을 사용해 원하는 부분만 슬라이싱도 가능
>>> x = np.random.randint(25,99,9)
>>> x
array([71, 90, 83, 37, 74, 59, 60, 76, 37])
>>> x[3:5+1]
array([37, 74, 59])
>>> X = np.random.randint(25,99,(4,5))
>>> X
array([[97, 44, 52, 48, 45],
[43, 74, 98, 78, 89],
[46, 68, 57, 39, 71],
[70, 55, 32, 29, 92]])
>>> X[1:2+1, 1:3+1]
array([[74, 98, 78],
[68, 57, 39]])
이어진 데이터가 아닌 데이터를 슬라이싱 하고싶을때는 [ ]안에 [ ]를 사용
# 첫 번째 행, 세 번째 행 가져오기
>>> X[[0, 2], ]
array([[97, 44, 52, 48, 45],
[46, 68, 57, 39, 71]])
# 첫 번째, 세 번째, 네 번째 열 가져오기
>>> X[: , [0,2,3]]
array([[97, 52, 48],
[43, 98, 78],
[46, 57, 39],
[70, 32, 29]])
' = ' 기호를 사용하여 데이터값을 변경하기도 가능
# X 데이터 맨 앞에 있는 97 을 0 으로 바꾸기
>>> X[0, 0] = 100
>>> X
array([[100, 44, 52, 48, 45],
[ 43, 74, 98, 78, 89],
[ 46, 68, 57, 39, 71],
[ 70, 55, 32, 29, 92]])
변수 Y 에 X를 슬라이싱해서 저장한 후 Y 데이터를 변경하면 X 데이터도 변경
>>> X
array([[100, 44, 52, 48, 45],
[ 43, 74, 98, 78, 89],
[ 46, 68, 57, 39, 71],
[ 70, 55, 32, 29, 92]])
>>> Y = X[0:2, 0:3]
>>> Y
array([[100, 44, 52],
[ 43, 74, 98]])
>>> Y[0,0] = 0
>>> Y
array([[ 0, 44, 52],
[43, 74, 98]])
>>> X
array([[ 0, 44, 52, 48, 45],
[43, 74, 98, 78, 89],
[46, 68, 57, 39, 71],
[70, 55, 32, 29, 92]])
copy( ) : 다른 변수로 저장할때 뒤에 copy() 작성시 메모리 공유를 하지 않음
(X 를 슬라이싱한 Y 를 변경해도 X 의 데이터는 변경되지 않음)
>>> Y = X[0:2, 0:3].copy()
>>> Y
array([[ 0, 44, 52],
[43, 74, 98]])
>>> Y[0,0]= 100
>>> Y
array([[100, 44, 52],
[ 43, 74, 98]])
>>> X
array([[ 0, 44, 52, 48, 45],
[43, 74, 98, 78, 89],
[46, 68, 57, 39, 71],
[70, 55, 32, 29, 92]])
'Python > Numpy' 카테고리의 다른 글
[Python] Numpy 데이터 확인하기 shape, size, dtype, ndim (0) | 2024.04.03 |
---|---|
[Python] Numpy 데이터 생성 Array (0) | 2024.04.02 |