-
[21.02.16] numpy와 친해지기 둘째 날AI/study log 2021. 8. 29. 23:58728x90
3. 배열 생성
크게 다섯 가지로 나누어 배열 생성 메소드를 살펴볼 것이다.
- zeros/ones
- zeros:
a=np.zeros(5) -> [0,0,0,0,0]
b=np.zeros((2,3)) -> [[0,0,0],[0,0,0]] - ones:
c=np.ones(4) -> [1,1,1,1]
d=np.ones((2,2)) -> [[1,1],[1,1]]
- zeros:
- zeros_like/ones_like
- zeors_like: 입력한 배열과 같은 크기로, 0으로 초기화된 새 배열 생성
e=np.zeros_like(d) -> [[0,0],[0,0]] - ones_like: 입력한 배열과 같은 크기로, 1로 초기화된 새 배열 생성
f=np.ones_like(e) -> [[1,1,1],[1,1,1]]
- zeors_like: 입력한 배열과 같은 크기로, 0으로 초기화된 새 배열 생성
- empty
- g=np.empty((4,3)) -> 특정 값으로 초기화되지 않은 값으로 배열 생성
- arange=Numpy 버전의 range!
- np.arange(10) -> 0~9
- np.arange(0,10,2) -> 0,2,4,...,8
- linspace/logspace
- linspace = 선형구간
np.linspace(0,100,5) -> 0부터 100까지의 '선형 구간'을 '5개'로 나누겠다! [0,25,50,75,100] - logspace = 로그 구간
np.logspace(0.1,1,10) -> 0.1부터 1까지의 '로그 구간'을 '10개'로 나누겠다!
- linspace = 선형구간
4. 넘파이의 변형
4-1. 1차원 배열의 전치(transpose)=행과 열을 바꾸는 작업
-A=np.array([[1,2,3],[4,5,6]])
-A.T -> ([[1,4],[2,5],[3,6]])4-2. 배열 크기 변형
: 만들어진 배열의 네부데이터를 '유지한 채' 형태만 바꾸려면 reshape! 단, 개수 다르면 오류남
-A.reshape(1,6) -> [1,2,,3,4,5,6]
+) 사용하는 갯수가 정해져 있어서 reshape 명령의 형태 튜플의 원소 중 하나는 -1로 대체 가능
+) 다차원 배열을 무조건 1차원으로 만들려면!- flatten
- ravel
+) 차원만 1 증가 시키고 싶다면?
- x[:,np.newaxis]4-3. 배열 연결하기
: 행의 수나 열의 수가 같은 두 개 이상의 배열을 연결(concantenate)하여 더 큰 배열로 만들 때!- hstack (=horizontal stack)
: '행의 수'가 같은 두 개 이상의 배열을 '옆'으로 연결! -> 열 증가!
np.hstack([a1,a2]) - vstack (=vertical stack)
: '열의 수'가 같은 두 개 이상의 배열을 '위아래'로 연결 -> 행 증가!
np.vstack([a1,a2]) - dstack (=depth stack)
: '깊이' 방향으로 합->"가장 안 쪽의 원소의 차원 증가"
2개의 (3X4) -> 1개의 (3X4X2)
5. 배열의 연산
-> 벡터화 연산= 선형 대수 공식과 동일, 반복문 X
5-1. 넘파이의 산술 연산과 비교 연산
-x=np.array([1,2])
y.np.array([2,4])- x+y
- x-y
- x*y
- x/y
- x>15
- x==2
- x>y
- x[x>15]
np.all(x==-1)5-2. 지수함수, 로그함수 또한 지원
a=np.arange(5)- np.exp(a)
- 10**a
- np.log(a+1)
5-3. 브로드 캐스트 (벡터와 스칼라의 연산 -> 스칼라 값을 벡터로 확대 후 연산)
728x90'AI > study log' 카테고리의 다른 글
[21.03.03] pandas와 친해지기 셋째 날 (0) 2021.08.30 [21.02.28] pandas와 친해지기 둘째 날 (0) 2021.08.30 [21.02.22] pandas와 친해지기 첫째 날 (0) 2021.08.30 [21.02.17] numpy와 친해지기 셋째 날 (0) 2021.08.30 [21.02.15] numpy와 친해지기 첫째 날 (0) 2021.08.29 - zeros/ones