참고영상
각각의 김밥을 element라고 할 수 있고, 인덱스를 정해줄 수 있겠다
rank는 몇차원 array냐는거고,
shape은 몇개의 element가 있냐는 거다
그래서 1차원에, 7개 있다는 소리!
내가 특정한 자리의 element를 가져오고 싶으면 t[0]이런식으로 가져올 수 있겠고
slice를 활용해서 가져올 수도 있겠다.
차원이 늘어난다면?
rank는 2이고, shape는 4랑 3이 되겠다.
3개씩 들어있는데 4개 있는거니까
axis는 축이다. 다음슬라이드에서 더 자세히 보자
rank는 4이며 axis는 저런식으로 이름 붙인다
matrix를 하려면 shape을 맞춰줘야한다
위에껀 (2,2) 이고 그 아래껀 (2,1)이다
앞에꺼의 2번째 원소와 뒤에꺼의 1번째 원소가 같으니 곱이 가능하다
저렇게 일반곱을 하는 실수를 할 수도 있으니 주의가 필요하겠다
각각을 더해서 5, 5가 되었다 이경우에는
Broadcasting이란..
첫번째 예시를 보면 둘이 matrix연산이 불가능하지만
3을 [[3,3]]으로 바꾸어주어 계산하는거다(격을 맞춰주기)
그다음에 더하면 되고
rank가 다르거나 모양이 달라도 broadcasting을 하여 연산 하기 가능
이번엔 reduce mean을 보자
평균을 줄여서 구하는건가?
1,2의 평균을 구한다고 해보자
1.5가 아니라 1이 나온다
axis에 따라서 평균이 달라질 수 있다
이런 상황에서 axis가 0일때
1과 3의 평균, 그리고 2와 4의 평균을 구하면 2와 3이 나올거다
axis가 1일때 에는1과 2의 평균인 1.5와
3과 4의 평균인 3.5가 나올거다
맨 마지막에 axis=-1일때가 제일 많이 쓰일거다
가장 안쪽에 있는 걸 평균 구해라 라는 거니까
axis 축을 안쓴다면 모든 원소를 평균 내라 라는거다
sum도 평균과 마찬가지고 하면 된다.
argmax도 많이 쓰인다. 제일 큰 것의 위치를 구하는 것!
reshape이 많이 쓰이고 중요하다고 한다.
내가 다시 모양을 바꿔주는거다
원래 shape이 2, 2, 3 이었는데
-1, 3 (여기서 -1은 네 맘대로 해! 라는 뜻이다) 로 바꾸어주었다
3개씩 묶으라는 의미이다
reshape중에 많이 쓰는게 squeeze랑 expand 이다
squeeze는 [] 지워서 쫙 펴주는 거라고 생각하면 좋고
expand는 [] 넣어서 더 구분할 때 사용
뒤로갈수록 많이 쓰는 one hot
주어진 숫자를 one hot으로(1로) 바꾸고 싶다 라는 의미..
casting은 int형으로 바꿔줄수도 있고
true false값을 바꿔줄수도 있다
stack은 쌓는다는 것
axis를 바꿔가면서 쌓는 법을 바꿀수도 있다
ones로 하면 1로만 채워진 shape을 만들수 있고
zeros로 하면 0으로만 채워진 shape을 만들 수있다
zip은 한번에 묶어서 출력할 때 쓸 수 있다.