# 2차원 배열 인덱싱
b = np.array([[1,2,3], [4,5,6]])
b[0, 1] # 0행의 1열: 2
b[0] # 0행: [1,2,3]
b[1, 1:] # 1행의 1~끝열: [5,6]
b[:, 0] # 모든 행의 0열: [1,4]
# 새 축 추가(np.newaxis)
b[:. 0][np.newaxis, :] # [[1,4]] - 행 방향으로 []을 씌워줌
b[:, 0][:, np.newaxis] #[[1],[4]] - 열 방향으로 []을 씌워줌
array([4, 5])
array([2, 4])
# boolean 배열을 통한 슬라이싱
a = np.array([1,2,3,4,5,6])
b = np.array([True, False, True, False, True, False])
c = a[b] # 배열 b를 인덱스로 사용 -> a에서 b값이 true인 요소만 추출
c
# 위치를 지정하는 배열을 통한 슬라이싱
a = np.array([1,2,3,4,5,6])
b = np.array([0,1,1,3,3,5])
c = a[b] # 배열 b를 인덱스로 사용, b의 요소가 가리키는 a의 요소를 담아 배열 생성(선택추출이 가능!)
c # a의 0, 1, 1, 3, 3, 5번째 요소를 순서대로 인덱스에 담음
array([1, 2, 2, 4, 4, 6])
a=np.array([[1,2,3],[4,5,6]])
b=np.array([[11,12,13],[14,15,16]])
a+b
array([[12, 14, 16],
[18, 20, 22]])
a=np.array([[1,2,3],[4,5,6]])
c=np.array([10,11,12]) # 크기가 일치하지 않는 경우
a+c
#c가 [[10,11,12],[10,11,12]]으로 자동으로 확장되어 계산. -> 브로드 캐스팅
array([[11, 13, 15],
[14, 16, 18]])
# 행렬곱: @
d = np.array([[1,0],[0,1],[1,0]]) #a:[[1,2,3],[4,5,6]]ㅔ
a@d
array([[ 4, 2],
[10, 5]])
array([[ 4, 2],
[10, 5]])
array([[10, 20, 30],
[40, 50, 60]])
array([[ True, True, True],
[ True, False, False]])
array([False, True, False, True])
array([False, True, True, True])
array([ True, True, False, False])
array([False, False, True, True, False])
array([ True, False, False, False, True])
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])
a = np.array([[0,1,2],[0,2,4],[0,3,6]])
a
array([[0, 1, 2],
[0, 2, 4],
[0, 3, 6]])
array([[ 0, 1, 2],
[ 0, 2, -1],
[ 0, 3, -1]])
a=np.array([1,2,3,4,5])
b=np.array([11,12,13,14,15])
np.where([True, False, True, True, False], a, b)
array([ 1, 12, 3, 4, 15])
np.where([[True,False],[True, True]],[[1,2],[3,4]],[[5,6],[7,8]])
array([[1, 6],
[3, 4]]) # True 위치에는 참일때 값, False 위치에는 거짓일때 값이 나옴
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
b.ravel() # b = [[ 0, 1, 2, 3],[ 4, 5, 6, 7], [ 8, 9, 10, 11]]
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
# 각 요소마다 [] 추가
c = a[:, np.newaxis] # a = [0,1,2,3,4,5,6,7,8,9,10,11]
c
array([[ 0],
[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11]])
array([[[ 0, 1, 2, 3]],
[[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11]]])
array([[1, 2, 3],
[4, 5, 6]])
21
array([5, 7, 9])
array([ 6, 15])
6
array([4, 5, 6])
array([3, 6])
5
array([1, 1, 1], dtype=int64)
array([2, 2], dtype=int64)
Leave a comment