[データ解析]5.numpy
デジタルテレビ番組グループvsデジタルテレビ番組グループ
1.numpyライブラリ
numpy.标题:N-Dimension,n次元
」()():うっかり
0は0.1、1は0.2、2は0.3などの確率で設定できます.
確率を設定して10万回実行 numpy未使用コード darray:numpy配列 numberfi配列リストにカンマがない インデックス、スライド可能 データは1種類しか保存できません アレイの初期化
1)0()、one()、yee():0と1のみでアレイ を初期化
適用演算 適用関数 アレイに演算または関数を適用すると、アレイ内のすべての値が同時に計算されます pi値生成特定範囲 範囲内の数字をpi値を100で割った間隔で配列aに格納 sin()関数をaに格納されたすべての値に適用し、グラフィック として表す
条件を満たすデータのみを選択的に格納
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
import matplotlib.pyplot as plt
t = []
p2 = []
p3 = []
for i in range(0, 50, 2):
t.append(i/10)
p2.append((i/10)**2)
p3.append((i/10)**3)
plt.plot(t, t, 'r--', t, p2, 'bs', t, p3, 'g^')
plt.show()
1.numpyライブラリ
-平方根
import numpy as np
print(np.sqrt(2))
-パイ
import numpy as np
print(np.pi)
print(np.sin(0))
print(np.cos(np.pi))
-乱数
import numpy as np
a = np.random.rand(5)
print(a)
print(type(a))
import numpy as np
print(np.sqrt(2))
import numpy as np
print(np.pi)
print(np.sin(0))
print(np.cos(np.pi))
import numpy as np
a = np.random.rand(5)
print(a)
print(type(a))
」()():うっかり
import numpy as np
print(np.random.choice(6,10))
#[1 2 5 2 5 4 2 5 4 3]
」choice(n,m):0からn-1の数字をm回繰り返し選択import numpy as np
print(np.random.choice(10, 6, replace=False))
#[0 6 1 5 4 8]
」replace=Falseを重複値を抽出しないように設定import numpy as np
print(np.random.choice(6, 10, p=[0.1, 0.2, 0.3, 0.2, 0.1, 0.1]))
#[0 4 2 2 2 2 4 2 1 1]
」p:確率設定0は0.1、1は0.2、2は0.3などの確率で設定できます.
-図形描画
1)ヒストグラム
import numpy as np
import matplotlib.pyplot as plt
dice = np.random.choice(6, 10)
plt.hist(dice, bins=6)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
dice = np.random.choice(6, 1000000, p=[0.1,0.2,0.3,0.2,0.1,0.1]) # 설정한 확률에 따라 값들 출력됨
plt.hist(dice, bins=6)
plt.show()
2)気泡図で示す
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randint(10, 100, 100)
y = np.random.randint(10, 100, 100)
size = np.random.rand(100) * 100
plt.scatter(x, y, s=size, c=x, cmap='jet', alpha=0.7)
plt.colorbar()
plt.show()
np.random.randint(10, 100, 100)
:200回抽出することを示す[10100]np.random.rand(n)
:0から1の間のn個のエラーを作成np.random.randint(a,b,n)
:a以上b以下n個の整数.import matplotlib.pyplot as plt
import random
x = []
y = []
size = []
for i in range(200):
x.append(random.randint(10,100))
y.append(random.randint(10,100))
size.append(random.randint(10,100))
plt.scatter(x, y, s=size, c=x, cmap='jet', alpha=0.7)
plt.colorbar()
plt.show()
- numpy array
import numpy as np
a = np.array([1,2,3,4])
print(a)
#[1 2 3 4]
print(a[1], a[-1])
# 2 4
print(a[1:]
#[2 3 4]
import numpy as np
a = np.array([1,2,'3',4])
print(a) #['1' '2' '3' '4'] 문자열로 모두 치환됨
1)0()、one()、yee():0と1のみでアレイ
import numpy as np
a = np.zeros(10) # 0으로 이루어진 크기가 10인 배열 생성
b = np.ones(10) # 1로 이루어진 크기가 10인 배열 생성
c = np.eye(3) # 3X3행렬 생성
print(a) #[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
print(b) #[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
print(c)
#[[1. 0. 0.]
#[0. 1. 0.]
#[0. 0. 1.]]
2)arangge()の使用:特定の間隔の値を生成するimport numpy as np
print(np.arange(3)) #[0 1 2] n-1한 값까지로 배열 생성
print(np.arange(3,7) #[3 4 5 6] 첫번째 숫자부터 두번째 숫자-1까지 배열 생성
print(np.arange(3,7,2)) #[3 5] 일정한 간격을 두고 배열 생성
3)linspace()の使用:特定の数の区間で区切られた値を生成するimport numpy as np
a = np.arange(1, 2, 0.1) # 1부터 2미만까지 0.1 간격으로 실수 생성
b = np.linspace(1, 2, 11) # 1부터 2까지 11개 구간으로 나눈 실수 생성
print(a) #[1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9]
print(b) #[1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. ]
import numpy as np
a = np.arange(-np.pi, np.pi, np.pi/10)
b = np.linspace(-np.pi, np.pi, 20)
print(a)
print(b)
-アレイのさまざまな用途
import numpy as np
a = np.zeros(10) + 5
print(a) #[5. 5. 5. 5. 5. 5. 5. 5. 5. 5.]
import numpy as np
a = np.linspace(1, 2, 11)
print(np.sqrt(a)) # [1. 1.04880885 1.09544512 1.14017543 1.18321596 1.22474487 1.26491106 1.30384048 1.34164079 1.37840488 1.41421356]
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(-np.pi, np.pi, np.pi/100)
plt.plot(a, np.sin(a))
plt.show()
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(-np.pi, np.pi, np.pi/100)
plt.plot(a, np.sin(a))
plt.plot(a, np.cos(a))
plt.plot(a+np.pi/2, np.sin(a)) # sin그래프 평형 이동
plt.show()
-マスク(mask)
import numpy as np
a = np.arange(-5, 5)
print(a<0) #[ True True True True True False False False False False]
print(a[a<0]) # 마스크 적용
#[-5 -4 -3 -2 -1]
mask1 = abs(a) > 3 #절댓값 이용
print(a[mask1]) #[-5 -4 4]
mask1 = abs(a) > 3
mask2 = abs(a) % 2 == 0
print(a[mask1+mask2]) # 둘 중 조건이 하나라도 참인 경우
#[-5 -4 -2 0 2 4]
print(a[mask1*mask2]) # 두 개 모두 참인 경우
#[-4 4]
バブル図を描く
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randint(-100, 100, 1000)
y = np.random.randint(-100, 100, 1000)
size = np.random.randint(3) * 100
mask1 = abs(x) > 50
mask2 = abs(y) > 50
x = x[mask1+mask2]
y = y[mask1+mask2]
plt.scatter(x,y,s=size,c=x,cmap='jet',alpha=0.7)
plt.colorbar()
plt.show()
Reference
この問題について([データ解析]5.numpy), 我々は、より多くの情報をここで見つけました https://velog.io/@jjaa9292/데이터분석5.numpyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol