ndarray를 만드는 또 다른 방법
import numpy as np
arr = np.zeros((3,4)) #안에 요소로 shape이 나와요 default data type은 np.float64
print(arr) [[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
arr = np.ones((2,3))
print(arr) [[1. 1. 1.]
[1. 1. 1.]]
arr = np.empty((5,6))#내용을 비워주는 게 0으로 채워주는 게 아닌 garbage값으로 채워져요
print(arr)
arr = np.full((3,4), 9) #내가 원하는 값으로 채워주세요
print(arr) [[9 9 9 9]
[9 9 9 9]
[9 9 9 9]]
arr = np.array([[1,2,3],[4,5,6]], dtype=np.float64)
print(arr) [[1. 2. 3.]
[4. 5. 6.]]
result = np.zeros_like(arr) #numpy array처럼 생긴 arr을 만드는데 zero로 채워라
print(result) [[0. 0. 0.]
[0. 0. 0.]]
ndarray를 생성하는 또 다른 방법 1
import numpy as np
a = range(0,10,1) #python의 range
print(a) # range(0, 10) 데이터 요소를 가지고 있지 않아요.
arr = np.arange(0,10,2)
print(arr) # [0 2 4 6 8] 실제 데이터를 가지고 있어요!
ndarray를 생성하는 또 다른 방법 2
import numpy as np
#np.linspace(start, stop, num) 인자가 세게 들어가요
#start에서 stop까지 범위에서 num개를 균일한 간격으로 원소를 생성하고 배열을 만들어요!
arr = np.linspace(0,10,10) # 0부터 10까지 균일하게 10개씩 들어가요
print(arr) [ 0. 1.11111111 2.22222222 3.33333333 4.44444444 5.55555556
6.66666667 7.77777778 8.88888889 10. ]
arr = np.linspace(0,10,11)
print(arr) [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
이해하기가 힘들어서 그래프로 그려보아요!
그래프를 그리려면 당연히 module을 설치해야 해요! 가장 기반이 되는 module은 matplotlib이에요.
anaconda prompt 이용
conda install matplotlib
import numpy as np
import matplotlib.pyplot as plt
arr = np.linspace(0,10,11)
print(arr) [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
plt.plot(arr, '*')
plt.show()

ndarray를 만드는 또 다른 방법(랜덤하게 생성)
5가지 형태로 랜덤하게 ndarray를 생성할 수 있어요!
import numpy as np
import matplotlib.pyplot as plt
np.random.normal() : 정규분포(종모양) 확률밀도함수에 실수 표본을 추출해서 ndarray를 생성
정규분포 그래프를 위해 평균, 표준편차가 필요해요 mean은 평균 std은 표준편차
mean = 50
std = 2
arr = np.random.normal(mean,std,(100000)) #(100000,)은 내가 만들려는 numpy array의 shape
print(arr) #[52.35403303 51.85425 51.91373215 ... 50.59983786 46.84310957 45.97543047]
plt.hist(arr,bins=100) #hist는 단위 안에 몇 개가 들어있는지 count, bins는 몇 개의 영역이 있느냐?
plt.show()

np.random.rand(d1,d2,d3...): 0 이상 1 미만의 균등 분포 확률 밀도 함수에서 실수 표본을 추출해서 ndarray를 생성
인자 d1이 하나 나오면 1차원 2개나오면 2차원 3개 나오면 3차원 #shape을 이용하지 않고 파라미터 개수를 가지고 사용
arr = np.random.rand(2,3) #인자가 2개라 2차원 2,3은 2행 3열
print(arr) [[0.62233971 0.0201332 0.6837459 ]
[0.40869431 0.64798306 0.0649948 ]]
arr = np.random.rand(100000)
print(arr)
plt.hist(arr,bins=100) #bins는 100개의 간격
plt.show()

np.random.randn() : 표준 정규분포상에서 실수 표본을 추출해서 ndarray를 생성
표준 정규분포 → 평균이 0이고 표준편차가 1인 정규분포를 지칭
arr = np.random.randn(100000)
print(arr) [ 0.353989 -0.1311781 -1.0468134 ... 0.136605 0.37405001
0.33656503]
plt.hist(arr,bins=100)
plt.show()

np.random.randint(low, high, shape): 최솟값과 최댓값 사이에서 정해진 shape으로 난수를 추출해서 ndarray를 생성 → 균등 분포를 이용해서 난수 추출
arr = np.random.randint(-100,100,(100000,)) #최소, 최대, shape
print(arr) # [-67 87 26 ... -14 -78 67]
plt.hist(arr,bins=100)
plt.show()

np.random.random(shape): 0 이상 1 미만의 균등 분포에서 실수형 난수를 추출해서 ndarray를 생성
#rand와 비슷하지만 shape을 이용
arr = np.random.random((100000,))
print(arr) #[0.6510645 0.84021036 0.88525935 ... 0.85323155 0.09541536 0.0706494 ]
plt.hist(arr,bins=100)
plt.show()

random 값을 이용해서 ndarray를 생성하는 방법!
1. python 의 list를 이용해서 ndarray를 생성 → np.array()
2. np.ones(), np.zeros(), np.full(), np.empty(), np.ones_like()
3. np.arange()
4. np.linspace()
5. np.random.~~() 랜던값으로 ndarray를 생성하는 5가지 함수
'머신러닝 딥러닝' 카테고리의 다른 글
| 0818 Numpy 6 (0) | 2021.08.18 |
|---|---|
| 0817 Numpy5 (0) | 2021.08.17 |
| 0817 Numpy4 (0) | 2021.08.17 |
| 0816 Numpy 3 (0) | 2021.08.16 |
| 0816 Numpy (0) | 2021.08.16 |
댓글