728x90
반응형
SMALL
import numpy as np
data = np.array( [ [1,2,3],[7,5,2],[10,1,8],[6,3,4] ] )
data
[OUT] :
array([[ 1, 2, 3],
[ 7, 5, 2],
[10, 1, 8],
[ 6, 3, 4]])
2차원 데이터 인덱싱(indexing), 슬라이싱(slicing) 예제
data.shape
[OUT] :
(4, 3)
data.reshape(-1,2,2) # [면,행,열], -1은 알아서 설정하라는 의미
[OUT] :
array([[[ 1, 2],
[ 3, 7]],
[[ 5, 2],
[10, 1]],
[[ 8, 6],
[ 3, 4]]])
data # 위에서 reshape을 했지만 data에 담지 않았으므로 바뀌지 않음
[OUT] :
array([[ 1, 2, 3],
[ 7, 5, 2],
[10, 1, 8],
[ 6, 3, 4]])
data[1]
[OUT] :
array([7, 5, 2])
data[1,1]
[OUT] :
5
data[[0,2,3]]
[OUT] :
array([[ 1, 2, 3],
[10, 1, 8],
[ 6, 3, 4]])
data[1:3,1]
[OUT] :
array([5, 1])
data[1:,[0,2]]
[OUT] :
array([[ 7, 2],
[10, 8],
[ 6, 4]])
2차원 데이터 인덱싱(indexing), 슬라이싱(slicing) 연습문제
#1. data의 마지막 열을 제외하고 선택하시오.
#1 solution
data[:,:-1] #특성데이터 추출시 많이 활용
[OUT] :
array([[ 1, 2],
[ 7, 5],
[10, 1],
[ 6, 3]])
#2. data의 마지막 열만 선택하시오.
data[:,[-1]]
[OUT] :
array([[3],
[2],
[8],
[4]])
2차원 데이터 boolean indexing 예제
data[[True,True,False,True]]
[OUT] :
array([[1, 2, 3],
[7, 5, 2],
[6, 3, 4]])
2차원 연산 예제
data+2
[OUT] :
array([[ 3, 4, 5],
[ 9, 7, 4],
[12, 3, 10],
[ 8, 5, 6]])
data[1] = data[1] + 2
data
[OUT] :
array([[ 1, 2, 3],
[ 9, 7, 4],
[10, 1, 8],
[ 6, 3, 4]])
data[:,1]
[OUT] :
array([2, 7, 1, 3])
data[:,0] > 5
[OUT] :
array([False, True, True, True])
data[data[:,0]>5]
[OUT] :
array([[ 9, 7, 4],
[10, 1, 8],
[ 6, 3, 4]])
(data[:,1]>=3) & (data[:,1]<=7)
[OUT] :
array([False, True, False, True])
2차원 데이터 추가, 수정, 삭제, 검색, 정렬 예제
ax = np.array( [[1,2],[3,4]])
ay = np.array( [[5,6],[7,8]])
np.append(ax,ay, axis=None) # 1차원으로 풀어서
[OUT] :
array([1, 2, 3, 4, 5, 6, 7, 8])
np.append(ax,ay, axis=0) # row에 추가
[OUT] :
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
np.append(ax,ay, axis=1) # column에 추가
[OUT] :
array([[1, 2, 5, 6],
[3, 4, 7, 8]])
np.hstack((ax,ay)) # 수평으로 쌓기
[OUT] :
array([[1, 2, 5, 6],
[3, 4, 7, 8]])
np.vstack((ax,ay)) # 수직으로 쌓기
[OUT] :
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
np.delete(data,[0,2])
[OUT] :
array([ 2, 9, 7, 4, 10, 1, 8, 6, 3, 4])
np.delete(data,[0,2],axis=0)
[OUT] :
array([[9, 7, 4],
[6, 3, 4]])
np.delete(data,[0,2],axis=1)
[OUT] :
array([[2],
[7],
[1],
[3]])
np.sort(data,axis=None)
[OUT] :
array([ 1, 1, 2, 3, 3, 4, 4, 6, 7, 8, 9, 10])
2차원 통계 axis
디폴트 axis = None : 1차원의 통계
axis = 0 : 컬럼별 통계값
axis = 1 : 로우별 통계값
2차원 통계 예제
data
[OUT] :
array([[ 1, 2, 3],
[ 9, 7, 4],
[10, 1, 8],
[ 6, 3, 4]])
data.sum()
[OUT] :
50
# col sum
data.sum(axis=0)
[OUT] :
array([26, 13, 19])
# row sum
data.sum(axis=1)
[OUT] :
array([ 6, 20, 19, 13])
data.mean(axis=0)
[OUT] :
array([6.5 , 3.25, 4.75])
data.mean(axis=1)
[OUT] :
array([2. , 6.66666667, 6.33333333, 4.33333333])
data.max()
[OUT] :
10
data.argmax()
[OUT] :
6
data.argmax(axis=0)
[OUT] :
array([2, 1, 2])
data.argmax(axis=1) #분류에서 많이 활용됨
[OUT] :
array([2, 0, 0, 0])
for a,b,c in data:
print(a,b,c)
[OUT] :
1 2 3
9 7 4
10 1 8
6 3 4
Review
- 2차원 데이터 axis 0컬럼 1로우
728x90
반응형
LIST