본문 바로가기
Python/python 기초

Numpy array -2

by winston1214 2020. 1. 7.
반응형

Numpy array -1 에서는 기본적인 배열 생성과 배열 구조에 대해서 알아보았다. 이번 장에서는 numpy의 간단한 함수를 통해 간단한 array를 생성시키는 것을 알아볼 것이다.

 

# 배열 생성 및 초기화 

1. 초기값을 지정하여 데이터를 자동으로 가지는 배열을 생성 

    - np.zeros() 

    - np.ones() 

    - np.full() 

    - np.eye() 

    

 

간단하게 배열을 초기화 하는 함수 4가지가 있다. 먼저 np.zeros()에 대해서 알아보겠다. 말그대로 배열을 0으로 초기화 시키는 함수이다. 

 

np.zeros(shape) 

    - 지정된 구조의 배열을 생성하고 모든 요소를 0으로 초기화 

    - shape: scala(1차원 배열) 또는 tuple type(2차원 배열/행.열)으로 구조를 지정

 

간단한 예시 코드로 

np.zeros((3,4))로 3행 4열의 0으로 초기화된 배열을 생성시켰다. 배열의 shape는 tuple형식으로 정의해야된다는 점을 유의해야한다. 위와 비슷하게 np.ones((3,4)) 코드는 3행4열 배열에 1이 채워진 배열이 생성되는 것이다.

 

다음으로 np.full()의 예시를 알아보겠다.

위는 3행4열의 배열을 생성한 후 모든 배열의 값이 0.5를 가진 배열을 생성한 것이다. 물론 np.full((3,4),1) == np.ones((3,4)) 는 같은 결과값을 나온다. 

 

다음은 np.eye() 함수이다. 아마 행렬을 배운 사람이면 행렬에서 E를 떠올리면 될 것이다. 즉 단위행렬을 만드는 것이다. 이는 다른 함수들과 다르게 구조를 튜플형식이 아닌 숫자 두개를 넣으면 된다. 즉

이런 형식으로 코드를 작성하면 된다. 또한 보통 단위 행렬은 n by n 형식으로 이루어져 np.eye(3,3) 이 아닌 np.eye(3) 으로 작성해도 같은 결과가 나온다.

 

# like 함수 

- 전달 받은 배열과 동일한 shape으로 초기값을 설정하여 새로운 배열을 생성 

    - np.zeros_like(): 초기값을 0으로 가지는 배열 생성 

    - np.ones_like(): 초기값을 1로 가지는 배열 생성 

    - np.full_like(): 초기값을 full_value 값으로 가지는 배열 생성

이는 기존에 있던 배열의 형태로 배열을 생성하는 것이다. 간단한 예시 코드를 보자.

shape를 따로 정해주지 않고 기존에 있던 arr1의 shape 와 같은 배열의 shape를 생성한 후 초기화 시키는 것이다.

다음으로 범위가 있는 배열 초기화 하는 함수를 알아볼 것이다. 대표적인 3가지가 아래에 나타난 함수이다.

 - np.linspace()
 - np.arange()
 - np.logspace()

 ## np.linspace(start,stop,num=50,endpoint=True)
    - 시작값부터 마지막값 사이의 범위에서 균등한 간격으로 일정 개수개의 데이터를 자니는 배열 생성
    - num : 데이터 개수, 기본값 = 50
    - endpoint: 마지막 값에 stop을 포함/제외하는 조건 지정, 기본값=True(포함) 마지막 값을 포함하는지 아닌지 결정

간단한 예시코드이다. endpoint를 False로 설정하여 1이 포함되지 않은 즉 0<=x<1 범위의 10개의 배열이 생성되었다. endpoint를 True로 설정하면 [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ] 위와 같은 배열이 생성된다.

## np.arange(start=0,stop,step=1)
- 시작값(start)부터 마지막값 사이의 범위에서 지정한 간격으로 일정개수의 데이터를 가지는 배열 생성
- 파이썬 내장함수 range()와 유사
- start: 시작값,기본값=0
- stop: 마지막값으로 범위에 포함되자 않음
- step: 데이터 사이의 간격, 기본값 1

### np.logspace(start,stop,num=50,endpoint=True)
- start와 stop을 모두 로그값을 씌우고 나서 그 사이에 균등한 간격으로 일정 개수개의 데이터를 가지는 배열 생성

자세한 코드는 github.com/winston1214/baseline_ML   ->  star와 팔로우 눌러주시면 감사하겠습니다.

 

winston1214/baseline_ML

ML을 위한 기초 공부. Contribute to winston1214/baseline_ML development by creating an account on GitHub.

github.com

 

반응형

'Python > python 기초' 카테고리의 다른 글

Numpy array - 4  (0) 2020.01.07
Numpy array - 3  (0) 2020.01.07
Numpy array - 1  (0) 2020.01.06
Formatting  (0) 2020.01.05
Jupyter NoteBook 유용한 단축키  (0) 2020.01.05

댓글