from numpy import random
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
Random Numbers in NumPy (λνμ΄ λμ)
- 무μμλ 물리μ μΌλ‘ λ
Όλ¦¬μ μΌλ‘ μμΈ‘ν μ μλ μ
- λμλ₯Ό μμ±νλ μκ³ λ¦¬μ¦
- μμ± μκ³ λ¦¬μ¦μ ν΅ν΄ μμ±λ λμ
randint()
- μ μλ‘ λμ μμ±
- κ°νΈνκ² λ‘λλ²νΈ μμ±
lt = random.randint(46, size=(5))
print(lt)
rand()
무μμ νλ‘― μμ±(Random Float) 0κ³Ό 1μ¬μ΄μ λΆλμμμ μμ±
Float = random.rand()
print(Float)
Data Distribution [λ°μ΄ν° λ°°ν¬]
- κ°λ₯ν λͺ¨λ κ°κ³Ό κ° κ°μ΄ λ°μνλ λΉλμ λͺ©λ‘
- μ΄λ¬ν λͺ©λ‘μ ν΅κ³ λ° λ°μ΄ν°/κ³Όν μμ
μ ν λ μ€μνλ€
- 무μμ λΆν¬λ νΉμ νλ₯ λ°λν¨μ. μ°μμ μΈ νλ₯ μ μ€λͺ
νλ ν¨μ, λ°°μ΄μ μλ λͺ¨λ κ°μ νλ₯
- choice() λͺ¨λμ λ°©λ²μ μ¬μ©νμ¬ μ μλ νλ₯ μ κΈ°λ°μΌλ‘ λμλ₯Ό μμ±ν μ μλ€
- νλ₯ μ 0κ³Ό 1μ¬μ΄μ μ«μλ‘ μ€μ λλ€ 0 = κ°μ΄ κ²°μ½ λ°μνμ§ μμμ μλ―Ένκ³ 1 = κ°μ΄ νμ λ°μν¨μ μλ―Ένλ€
choice()
λ°°μ΄ λ§€κ°λ³μμ κ°μΌλ‘ ꡬμ±λ 2μ°¨μ λ°°μ΄μ μμ±
q = random.choice([3,5,7,9], p=[0.1, 0.3, 0.6, 0], size = (3,5))
print(q)
size??
λλ€μ νλ₯ μ μ‘°μ νλ€
1μ°¨μ λ°°μ΄ 3,5,7,9
κ°μ΄ 3μ΄ λ νλ₯ 0.1
κ°μ΄ 5κ° λ νλ₯ 0.3
κ°μ΄ 7μ΄ λ νλ₯ 0.6
κ°μ΄ 9κ° λ νλ₯ 0μΌλ‘ μ€μ ν©λλ€
normal()
- μμ μ κ· λΆν¬λ₯Ό μμ±ν©λλ€
e = random.normal(size=(2,3))
print(e)
- 2x3ν¬κΈ°μ λλ€ μ κ· λΆν¬λ₯Ό μμ±ν©λλ€
shuffle()
- λ°°μ΄μ μμλ₯Ό 무μμλ‘ μλλ€ (μλ³Έμ μμ νλ€)
permutation()
- μλ λ°°μ΄(μλ³Έ)μ μ¬λ°°μ΄νμ§ μκ³ μ¬λ°°μ΄λ λ°°μ΄μ 보μ¬μ€λ€.
λΆν¬λ
1. μ΄ν λΆν¬
μ΄μ°λΆν¬λ₯Ό μλ―Ένλ©° λμ λμ§κΈ°μ κ°μ μ΄μ§ μλ리μ€λ₯Ό μ€λͺ νλ€ (μλ©΄ λλ λ·λ©΄)
μΈκ°μ§ λ§€κ°λ³μλ₯Ό κ°μ§λ€ n(μννμ) p(κ° μνμ λ°μνλ₯ ) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
μ κ·λΆν¬μμ λΉκ΅ - μ κ·λΆν¬λ μ°μμ μΈ λ°λ©΄ μ΄νμ μ΄μ°μ μ΄λ€
scale ? λμ λμ§κΈ°μ λν΄ 10λ²μ μλκ° μ£Όμ΄μ§λ©΄ 10κ°μ λ°μ΄ν° ν¬μΈνΈκ° μ€μ λλ€
q = random.binomial(n=10, p=0.5, size=10)
sns.distplot(random.normal(loc=50, scale=5, size=1000), hist=False, label='normal')
sns.distplot(random.binomial(n=10, p=0.5, size=1000), hist=False, label='binomial')
plt.show()
2. ν¬μμ‘λΆν¬
νΉμ μκ°μ μ΄λ²€νΈκ° λͺ λ² λ°μν μ μλμ§ μΆμ νλ€
μ) ν루μ λ°₯μ λλ² λ¨Ήλλ€λ©΄ κ·Έκ° λ°₯μ μΈλ² λ¨Ήμ νλ₯ μ μΌλ§λ λλκ°?
lam : λ°μλ₯ λλ μλ €μ§ λ°μνμ , μμ μμμ κ²½μ° 2
size : λ°νλ λ°°μ΄κ°
q = random.poisson(lam=2, size=10)
print(q)
#λ°μ 2μ λν΄ μμμ 1 x 10 λΆν¬λ₯Ό μμ±νλ€
sns.distplot(random.poisson(lam=2, size =1000), kde=False)
plt.show()
3. κ· λ±λΆν¬
λͺ¨λ μ¬κ±΄μ΄ λ°μν κ°λ₯μ±μ΄ λμΌν νλ₯ μ μ€λͺ
νλλ° μ¬μ©λλ€ uniform()
λ§€κ°λ³μ a(νν =>κΈ°λ³Έκ°μ 0.0) b(μν =>κΈ°λ³Έκ°μ 1.0) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
w = random.uniform(size=(2,3))
print(w)
sns.distplot(random.uniform(size=1000), hist=False)
plt.show()
4. λ¬Όλ₯λΆν¬
λ¬Όλ₯μ±μ₯μ μ€λͺ
νλ λ° μ¬μ©νλ€ logistic()
λ‘μ§μ€ν±, νκ·, μ κ²½λ§ λ±μ λ¨Έμ λ¬λμ κ΄λ²μνκ² μ¬μ©λλ€
loc(μ μ μ΄ μ΄λμΈμ§λ₯Ό μλ―Έν¨, κΈ°λ³Έκ°μ 0) scale(νμ€νΈμ°¨, λΆν¬μ ννμ±) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
r = random.logistic(loc=1, scale=2, size =(2,3))
print(r)
# νκ· μ΄ 1μ΄κ³ stddev(νμ€νΈμ°¨)κ° 2.0μΈ λ‘μ§μ€ν±λΆν¬μμ 2 x 3 μνμ κ·Έλ¦°λ€
sns.distplot(random.logistic(size=100),hist=False)
plt.show()
5. λ€νλΆν¬
μ΄νλΆν¬λ₯Ό μΌλ°ν ν κ²μ΄λ€. λ μ€ νλμΈ μ΄νμλ리μ€μ λ€λ₯΄κ² νμ‘ν, μ£Όμ¬μμ κ΅΄λ¦Ό κ²°κ³Όμ κ°μ λ€νμλ리μ€μ κ²°κ³Όλ₯Ό μ€λͺ
νλ€.
n(κ°λ₯ν κ²°κ³Όμ μ) pvals(κ²°κ³Όνλ₯ λͺ©λ‘) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
u = random.multinomial(n=6, pvals=[1/6, 1/6, 1/6, 1/6, 1/6, 1/6])
print(u)
sns.distplot(random.multinomial(n=6, pvals=[1/6, 1/6, 1/6, 1/6, 1/6, 1/6]),hist=False)
plt.show()
6. μ§μλΆν¬
μ€ν¨/μ±κ³΅ λ± λ€μ μ΄λ²€νΈκΉμ§μ μκ°μ μ€λͺ
νλ λ° μ¬μ©λλ€ exponential()
scale(λΉμ¨μ μμ=ν¬μμ‘λΆν¬μ λ¨, κΈ°λ³Έκ°μ 1.0) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
sns.distplot(random.exponential(size=1000), hist=False)
plt.show()
7. μΉ΄μ΄μ κ³±λΆν¬
κ°μ€κ²μ¦μ κΈ°μ΄λ‘ μ¬μ©λλ€
df(μμ λ) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
p = random.chisquare(df=2, size=(2,3))
print(p)
8. λ μΌλ¦¬λΆν¬
μ νΈμ²λ¦¬μ μ¬μ©λλ€
scale(λΉμ¨μ μμ=ν¬μμ‘λΆν¬μ λ¨, κΈ°λ³Έκ°μ 1.0μ΄λ€) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
a = random.rayleigh(scale=2, size=(2,3))
print(a)
9. νλ ν λΆν¬
νλ ν μ λ²μΉμ λ°λ₯΄λ λΆν¬ 80-20λΆν¬μ΄λ€
20% μμΈμ΄ 80% κ²°κ³Όλ₯Ό μ λ°νλ€ νμͺ½μΌλ‘ νΈμ€λ λͺ¨μ
a(λͺ¨μ λ§€κ°λ³μ) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
sns.distplot(random.pareto(a=2, size=1000),kde=False)
plt.show()
10. Zipfλ°°ν¬
λ€μ―λ²μ§Έλ‘ κ°μ₯ νν λ¨μ΄λ κ°μ₯ μΌλ°μ μΈ λ¨μ΄λ³΄λ€ κ±°μ 1/5λ°° λ μμ£Ό λνλλ€
λͺ¨μμμ nλ²μ§Έ 곡ν΅μ©μ΄λ κ°μ₯ μΌλ°μ μΈ μ©μ΄μ 1/nλ°° μμ΄μμ λ€μ―λ²μ§Έλ‘ νν λ¨μ΄λ κ°μ₯ μΌλ°μ μΈ λ¨μ΄λ³΄λ€ κ±°μ 1/5λ°° λ μμ£Ό λνλλ€
a(λΆν¬ λ§€κ°λ³μ) size(리ν΄λ λ°°μ΄μ λͺ¨μ)
s = random.zipf(a=2, size=1000)
sns.distplot(s[s<10], kde=False)
plt.show()
'Python > Python Language' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
NumPy λκ·λͺ¨ λ°μ΄ν° λ°°μ΄μ ν¨μ¨μ μΈ UFUNC ν¨μ κ°λ (0) | 2024.04.24 |
---|---|
Numpy λ°°μ΄(Array)μ λν κ°λ μ€λͺ (0) | 2024.04.24 |
λλ€(Lambda) : μ΅λͺ ν¨μ κ°λ μ€λͺ (0) | 2024.04.24 |
μ κ·μ ν¨μ (Python RegEx) (0) | 2024.04.24 |
νμ΄μ¬ Datetime ν¬λ§· κ°μ΄λ: strftime μ½λ μμμ μ€λͺ (2) | 2024.04.24 |