군침이 싹 도는 코딩
Python numpy 데이터 억세스 슬라이싱 본문
● 1차원 데이터(벡터)를 억세스하는법
x
>>> array([83, 40, 73, 54, 31, 76, 91, 39, 90, 25])
x[2]
>>> 73
● 2차원 데이터(행렬)를 억세스하는법
X
>>> array([[13, 22, 49, 42, 80],
[91, 63, 58, 20, 34],
[60, 40, 16, 37, 66],
[ 2, 44, 16, 87, 84]])
X[1][2]
>>> 58
● 1차원 데이터(벡터)를 슬라이싱 하는법
x
>>> array([83, 40, 73, 54, 31, 76, 91, 39, 90, 25])
x[2:6+1]
>>> array([73, 54, 31, 76, 91])
● 2차원 데이터(행렬)를 슬라이싱 하는법
X
>>> array([[13, 22, 49, 42, 80],
[91, 63, 58, 20, 34],
[60, 40, 16, 37, 66],
[ 2, 44, 16, 87, 84]])
X[1:2+1,1:3+1]
>>> array([[63, 58, 20],
[40, 16, 37]])
# 주의할점은 2차원 데이터는 열은 비워도 되지만 행은 비우면 에러가 난다.
X[2,]
>>> array([60, 40, 16, 37, 66])
X[,2]
>>> SyntaxError: invalid syntax
#따라서 이렇게 해줘야 한다
X[:,2]
>>> array([49, 58, 16, 16])
● 원하는 2차원 데이터(행렬)를 슬라이싱 하는법
X
>>> array([[ 13, 22, 49, 42, 80],
[ 91, 63, 58, 20, 34],
[ 60, 40, 16, 37, 66],
[ 2, 44, 16, 87, 100]])
# X 의 첫번째 행과 세번째 행 중에서 아래것을 가져오기
# 49, 42, 80
# 58, 20, 34
X[(0,2),2:]
>>> array([[49, 42, 80],
[16, 37, 66]])
● 중복된 것을 제거한값만 가져오기
page_view
>>> array([ 1, 5, 3, 1, 40, 22, 33, 58, 12, 1, 5, 3])
np.unique(page_view)
>>> array([ 1, 3, 5, 12, 22, 33, 40, 58])
● boolean 연산
X
>>> array([[ 13, 22, 49, 42, 80],
[ 91, 63, 58, 20, 34],
[ 60, 40, 16, 37, 66],
[ 2, 44, 16, 87, 100]])
# 80보다 큰 데이터는 몇개 ?
(X > 80).sum()
>>> 3
# 80보다 큰 데이터를 가져와라
X > 80
>>> array([[False, False, False, False, False],
[ True, False, False, False, False],
[False, False, False, False, False],
[False, False, False, True, True]])
X[X>80]
>>> array([ 91, 87, 100])
# X 의 데이터 중에서 50보다 크고 80보다 작은 데이터를 가져오세요
X > 50 and X < 80
>>> ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
# and , or 연산자는 조건문에서만 사용한다
# 데이터 억세스에서는 and , or 대신 & , | 를 사용한다.
(X > 50 ) & (X < 80)
>>> array([[False, False, False, False, False],
[False, True, True, False, False],
[ True, False, False, False, True],
[False, False, False, False, False]])
X[ (X > 50 ) & (X < 80) ]
>>> array([63, 58, 60, 66])
'Python > Numpy' 카테고리의 다른 글
Python Numpy - axis (0) | 2022.11.23 |
---|---|
Python numpy - random (0) | 2022.11.23 |
Python library - Numpy (0) | 2022.11.22 |