밤하늘공작소

numpy 리스트 만드는 방법 본문

코딩/Python

numpy 리스트 만드는 방법

밤하늘공작소 2022. 10. 26. 15:36

numpy란 뉴머리컬 파이썬(numerical python)의 줄임말로 숫자와 관련한 계산 작업을 편하게 해 줄 도구입니다. python은 원래 숫자 계산을 하기 위해 만들어지지 않았고, 그런 것을 하기 위해 더 많은 코드를 써야 했었습니다. 그래서 numpy가 python으로 숫자 계산을 할 때 적은 코드로 효율적이게 실행시키기 위해 만들어졌습니다. numpy는 numpy 배열이라는 것을 제공해서 2차원 배열이나 많은 수학적 계산을 해야 할 때 유용하게 쓰입니다.

 


 

numpy에는 리스트를 만들 수 있는 방법이 여러 가지 있습니다. 기존에 python 배열을 이용해 만들 수도 있고, 똑같은 숫자로 값을 채울 수도 있습니다. 또 이어지는 숫자나 랜덤한 숫자로 채울 수도 있습니다. 

 

1. python 리스트 이용해 만들기

가장 기초적인 방법으로 numpy를 임포트한 후 numpy의 array라는 함수를 이용해서 만듭니다. 

import numpy as np

numpy_list1 = np.array([1, 2, 3, 4, 5])

print(numpy_list1)
[1 2 3 4 5]

numpy의 array라는 함수 안에 python 리스트를 넣으면 그것이 numpy 배열로 변경됩니다. 

 

2. 똑같은 값들로 채우기

numpy에서는 함수를 제공해서 똑같은 값으로 리스트를 채워야 할 때 쉽게 사용할 수 있게 합니다. 이러한 함수는 여러 가지 있습니다. 

import numpy as np

numpy_array1 = np.full(6, 0)
numpy_array2 = np.full(6, 1)
numpy_array3 = np.zeros(6, dtype=int)
numpy_array4 = np.ones(6, dtype=int)
    
print(numpy_array1)
print(numpy_array2)
print(numpy_array3)
print(numpy_array4)
[0 0 0 0 0 0]
[1 1 1 1 1 1]
[0 0 0 0 0 0]
[1 1 1 1 1 1]

우선 full 함수는 두번째 파라미터의 숫자가 첫 번째 파라미터의 숫자만큼 있는 리스트를 줍니다. 예를 들어 위에 "np.full(6, 0)"의 경우는 0이 6개 들어있는 리스트를 주는 것입니다. zeros은 0이 첫 번째 파라미터로 온 숫자만큼 채워진 리스트를 넘겨줍니다. ones도 똑같이 1로 채워진 리스트가 만들어집니다. 

 

3. 연속되는 숫자로 채우기

numpy에서는 연속되는 숫자로 채워주는 함수도 있습니다. 바로 arange입니다. 

import numpy as np

numpy_array1 = np.arange(5)
numpy_array2 = np.arange(3, 9)
numpy_array3 = np.arange(3, 22, 3)

print(numpy_array1)
print(numpy_array2)
print(numpy_array3)
[0 1 2 3 4]
[3 4 5 6 7 8]
[ 3  6  9 12 15 18 21]

arange에는 파라미터는 한 개를 넣은 경우 0에서부터 (첫번재 파라미터 - 1)까지 연속되는 숫자가 있습니다. 만약 파라미터 두 개를 넣는다면 (첫 번째 파라미터)에서 (두 번째 파라미터 - 1)까지 연속되는 숫자가 있습니다. 만약 세 개의 파라미터를 넣는다면 (첫 번째 파라미터)에서 (두 번째 파라미터 - 1)까지 연속하는 숫자들 중 (세 번째 파라미터)의 간격의 값들을 줍니다. 

 

4. 무작위 값으로 채우기

무작위로 차우는 방법도 있습니다. numpy에는 random이 있고, random에는 randint이라는 함수가 있습니다. 밑에 코드와 같이 사용합니다. 

import numpy as np

numpy_array1 = np.random.randint(5, size=6)
numpy_array2 = np.random.randint(2, 8, size=6)

print(numpy_array1)
print(numpy_array2)
[3 0 1 1 0 3]
[7 2 6 3 3 7]

numpy 안에 random 안에 randit 함수가 하나의 파라미터를 받으면 0 ~ (첫번째 파라미터)의 범위의 숫자 중 랜덤하게 고른 값이 size의 값만큼 있는 리스트를 만듭니다. 만약 두 개의 파라미터를 받는다면 (첫 번 재 파라미터) ~ (두 번째 파라미터)의 범위 중 랜덤하게 고른 값이 size의 값만큼 리스트를 만들게 됩니다. 

반응형

'코딩 > Python' 카테고리의 다른 글

Pandas란?  (2) 2022.10.28
Python 리스트 Numpy 리스트 차이점  (0) 2022.10.21
Python에서 문자 자르기  (0) 2022.07.22
Python 리스트 활용 팁  (6) 2022.07.11
Python에서 포맷팅하기  (0) 2022.06.28
Comments