반응형
● 공부내용 정리
- array([[0.83614321, 0.01947069, 0.86611722, 0.22491882, 0.38774013],
[0.07865916, 0.32777648, 0.88740131, 0.17297864, 0.75247535],
[0.34391344, 0.75748779, 0.07293811, 0.08010135, 0.75554224]])
위 배열을 변수 y에 저장하고 sum(y)를 하면 세로축을 기준으로 합한다.
np.sum(y, axis=0)와 결과가 같다. axis=0의 뜻은 '열을 기준으로 합한다' 이다.
- [-0.08092649 1.29302649 0.28524454 -0.74978274 2.76943012 -0.15174752
-0.22613222 1.03934212 0.52297483 0.12123509 0.83995396 0.88813528
0.03734455 0.91564726 -0.17112691]
이 배열에서 where 함수를 써서 조건에 따라 선별적으로 값을 선택할 수 있다. 3항연산자와 비슷한 형태.
np.where(z > 0, z, 0) #z>0이면 z를 선택하고, z>0이 조건에 부합하지 않으면 0을 선택한다.
결과 : array([0. , 0. , 1.24736681, 1.34526277, 0. ,
0.76323324, 0. , 1.10724656, 0. , 0.18568893,
0. , 0. , 0. , 0.04721508, 0. ])
- 0번째에 따라서 압축 시키기. 3차원 각 상자를 겹치게 만드는 효과. 0번째를 삭제했기 때문에 (4, 3)만 남음. axis=0인경우는 이해가 잘 되는데, axis=1, axis=2인 경우가 이해가 되지 않는다. 머리속에 그림이 그려지지 않는다.
z = np.arange(36).reshape(3,4,3)
print(z)
np.sum(z, axis=0)
더보기
결과 :
[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[12 13 14]
[15 16 17]
[18 19 20]
[21 22 23]]
[[24 25 26]
[27 28 29]
[30 31 32]
[33 34 35]]]
array([[36, 39, 42],
[45, 48, 51],
[54, 57, 60],
[63, 66, 69]])
● 배열의 차원(1차원, 2차원 3차원)
그림을 보고 이해를 해보자. 선생님 말씀으로는 기준이 되는 axis=1 이 축이되면 즉 기준이 되면 그 축을 빼고 연산하는 것이다. 기준이 되는 축을 뺀다.
알게된 사실 : 연산을 하면 차원이 하나 줄어든다. 차원이 줄어드는 것은 압축하는 효과가 있다.
axis=1이면 열을 기준으로 연산한다.
- 브로드캐스팅(broadcasting) : 뒷 차원부터 체크한다. 그게 맞으면 연산 가능함.
예제
a = np.arange(12).reshape(4,3) #4행 3열
b = np.arange(100, 103) #1행 3열 벡터 ==3행짜리 벡터?
c = np.arange(1000, 1004) #1행 4열 벡터 ==4행짜리 벡터?
print(a)
print(b)
print(c)
print(a.shape)
print(b.shape) # 브로드캐스팅은 뒷 차원에서부터 비교한다.
print(c.shape) # (4,3)와 (3,)은 뒷 차원이 같음.
# (4,3)과 (4,)은 뒷 차원이 달라서 연산이 불가능하다 .
반응형
'코딩 학원(국비지원)' 카테고리의 다른 글
89일차 코딩학원 (2) | 2023.05.30 |
---|---|
코딩학원 88일차. 파이썬, Git (6) | 2023.05.25 |
코딩학원 86일차 (4) | 2023.05.23 |
85일차 코딩학원 (0) | 2023.05.22 |
84일차 코딩학원(능력단위평가) (1) | 2023.05.19 |