https://colab.research.google.com/?utm_source=scs-index
Google Colaboratory
colab.research.google.com
구글 코랩 이용 (들어가서 새노트 클릭하면 코드 입력할 수 있는 창이 뜸)
프로그래머스 강의 데이터 과학을 위한 파이썬 Numpy를 보며 공부를 해 볼 것이다!

먼저 넘파이 설치를 해야 하는데 !pip install numpy를 입력하고 실행하면 된다. 코랩은 이미 설치되어 있기 때문에 별도로 설치를 하지 않아도 된다.
import numpy를 입력해서 임포트 할 수 있다. as뒤에는 별칭 설정을 해 줄 수 있다!
[1,2,3,4]
축(axis)이 1개인 1차원배열
[[1,2,3],
[4,5,6]]
축(axis)이 2개인 2차원배열
[[[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]]]
축(axis)이 3개인 3차원배열
np.array()를 이용하여 생성한다

1차원 배열 생성

2차원 배열 생성
이렇게 생성된 배열은 List랑 비슷해 보일 수 있지만 다른 타입이다.

type을 확인해 보면 list가 아님 numpy.ndarray로 뜨는 것을 볼 수 있다.
튜플과 리스트로도 n차원 배열을 만들 수 있다.


N차원 배열 shape 확인

-> 열이 3개인 1차원 / 행이 2개이고 열이 3개인 2차원
N차원 배열 차원 확인 (ndim)

-> 1차원 / 2차원
N차원 배열 size 확인

-> 3개의 원소 / 6개의 원소

데이터타입을 float(실수)로 설정하면 배열의 요소들이 뒤에 소수점이 붙은 실수형으로 바뀐다.
arr뒤에 dtype을 붙이고 출력하면 어떤 데이터타입인지 확인할 수 있다.

int형

boolean 형
등등
- 데이터타입 수정 astype(np.타입)

astype을 이용하여 데이터타입을 수정할 수도 있다.
※주의할 점
넘파이 배열에서는 일반 리스트와 다르게 단일 데이터타입의 값만 넣을 수 있다.
만약 혼재할 경우 하나의 데이터타입으로 변환되지만 문자열이 섞여 있는 경우에는 에러가 뜬다.

np.zeros는 0으로 이루어진 배열을 생성해 준다.
[2, 2] -> 2행 2열로 이루어진 배열 생성한다는 의미
np.ones는 1로 이루어진 배열 생성해 준다.

np.full는 2번째 인자에 입력한 value로 배열을 반환해 준다.
5을 입력해서 5로 이루어진 2행 3열의 배열이 반환되었다.

np.eye는 대각선에 위치한 원소를 1로, 그 외는 0으로 반환해 준다.
k=n은 1로 바꿀 대각선이 시작되는 위치를 설정해 주는 것이다. -값도 가능하다. (기본값 0)
3행 4열의 0번째 인덱스에서부터 시작되는 대각선이 1인 배열이 반환되었다.
n값만 입력하면 정방행렬로 반환된다.

기존 배열의 shape바꾸기

np.zeros_like는 기존에 있는 배열의 요소들을 모두 0으로 바꿔준다.
np.ones_like는 기존에 있는 배열의 요소들을 모두 1로 바꿔준다.

np.full_like는 기존에 있는 배열의 요소들을 지정한 원소로 바꿔준다.

리스트로는 위와 같은 형식으로 특정 범위의 배열을 생성할 수 있다.
이와 비슷한 방식으로 numpy 에서는 np.arange() 를 사용한다


np.arange() 와 비슷하게 np.linspace()가 있다

위 코드를 해석해보면, 11개의 0부터 100까지의 숫자를 출력하라는 것인데, 숫자들이 균일한 간격의 차이를 갖고 있다.

5개일 경우

딱 나눠 떨어지지 않으면 이렇게 소수점 단위로 나뉘어 출력된다.
np.logspace()는 linspace와 비슷한 로그 값 스케일의 메소드이다.

base값을 2로 설정했을 경우

base값 설정 안 했을 경우

위는 설치
아래 import하기
matplotlib이라는 메서드를 사용할 것이다.

np.random.normal(평균값, 표준편차, 표출할 표본의 개수)

10개의

size 부분을 (행,열) 형태로 입력하면 난수로 이루어진 행렬 출력

시각화
np.random.rand()
0에서 1사이의 값을 균등한 비율로 표본을 추출해 줌

np.random.randn()
-1부터 1사이의 값을 정규분포, 가우시안 분포 표본을 추출해 줌

np.random.randint()
랜덤한 정수만 출력

1부터 5미만 까지의 값들이 출력

행열 사이즈 입력할 경우
size에 하나의 값만 입력할 경우 자동으로 high값으로 인식한다.
seed를 통해 난수의 발생지점을 고정시킬 수 있다.

원래 랜덤값을 출력하면 출력할 때마다 값이 모두 랜덤으로 바뀌는데, seed를 통하여 다음과 같이 동일한 난수를 출력시킬수 있다.
| 코딩일기: 데이터 과학을 위한 파이썬 Numpy 3일차- 1 (0) | 2023.06.30 |
|---|---|
| 코딩일기: 데이터 과학을 위한 파이썬 Numpy 2일차 (0) | 2023.06.30 |
| 코딩일기: 노마드 코더로 공부 9일차 (0) | 2023.06.26 |
| 코딩일기: 노마드 코더로 공부 8일차 (0) | 2023.06.25 |
| 코딩일기: 노마드 코더로 공부 7일차(06.23) (0) | 2023.06.24 |