Numpy&Matplotlibノート
5118 ワード
numpy乱数
np.random.rand(10, 10) // ( e 10 10 ) ( 0-1 )
np.random.uniform(0, 100) //
np.random.randint(0, 100) //
np.random.normal(1.75, 0.1, (2, 3)) // / /
np.random.randint(0, 100, (2, 3)) // (2, 3), 0-100.
numpy配列操作
>>> import numpy as np
>>> s = np.array([[1, 2], [3, 4]])
>>> s.cumsum() //
array([ 1, 3, 6, 10], dtype=int32)
>>> s.cumsum()[-1]
10
>>> s.cumprod() //
array([ 1, 2, 6, 24], dtype=int32)
>>> s.cumprod()[-1]
24
>>> s.std() //
1.118033988749895
>>> s.sum() //
10
>>> s.mean() //
2.5
>>> s.min() //
1
>>> s.max() //
4
>>> s.argmax() //
3
>>> s.argmin() //
0
numpy線形代数
>>> x = np.array([[1, 2, 3], [4, 5, 6]])
>>> y = np.array([[6, 23], [-1, 7], [8, 9]])
>>> x
array([[1, 2, 3],
[4, 5, 6]])
>>> y
array([[ 6, 23],
[-1, 7],
[ 8, 9]])
>>> x.dot(y) //
array([[ 28, 64],
[ 67, 181]])
>>> z = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> z
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> np.diag(z) // ( ) , ( 0)
array([1, 5, 9])
>>> np.diag(np.array([1, 5, 9]))
array([[1, 0, 0],
[0, 5, 0],
[0, 0, 9]])
>>> np.trace(z) //
15
>>> np.linalg.det(z) //
0.0
>>> np.linalg.eig(z) //
(array([ 1.61168440e+01, -1.11684397e+00, -1.30367773e-15]), array([[-0.23197069, -0.78583024, 0.40824829], [-0.52532209, -0.08675134, -0.81649658],
[-0.8186735 , 0.61232756, 0.40824829]]))
>>> z = np.array([[1, 2, 3], [4, 5, 1], [7, 8, 10]])
>>> np.linalg.inv(z) //
array([[-1.27272727, -0.12121212, 0.39393939],
[ 1. , 0.33333333, -0.33333333],
[ 0.09090909, -0.18181818, 0.09090909]])
>>> np.linalg.pinv(z) //
array([[-1.27272727, -0.12121212, 0.39393939],
[ 1. , 0.33333333, -0.33333333],
[ 0.09090909, -0.18181818, 0.09090909]])
>>> np.linalg.qr(z) // OR
(array([[-0.12309149, 0.90453403, 0.40824829],
[-0.49236596, 0.30151134, -0.81649658],
[-0.86164044, -0.30151134, 0.40824829]]), array([[-8.12403840e+00, -9.60113630e+00, -9.47804481e+00],
[ 0.00000000e+00, 9.04534034e-01, 7.10542736e-15],
[ 0.00000000e+00, 0.00000000e+00, 4.49073120e+00]]))
>>> np.linalg.svd(z) // (SVD)
(array([[-0.22381562, 0.26366043, -0.93829086],
[-0.34941657, -0.9204243 , -0.17529168],
[-0.90984319, 0.28862136, 0.29813265]]), array([15.99977546, 3.55970061, 0.57941079]), array([[-0.49940602, -0.59209953, -0.63246483],
[-0.3926418 , -0.49606132, 0.77443888],
[ 0.77228624, -0.63509157, -0.01525298]]))
>>> A = np.array([[1, 2], [3, 4]])
>>> b = np.array([5, 6])
>>> np.linalg.solve(A, b) // Ax=b, A
array([-4. , 4.5])
>>> np.linalg.lstsq(A, b) // Ax=b
(array([-4. , 4.5]), array([], dtype=float64), 2, array([5.4649857 , 0.36596619]))
出力:
b - ax
の各列の平方ユークリッド範数;AのランクA.shape[0]の場合、空の配列が返されます.bが1次元である場合、A(1,)形状の配列であり、そうでない場合、形状は(K,)matplotlib.pyplotプロット関数
関数#カンスウ#
説明
plt.plot(x, y, fmt, …)
座標図を描く
plt.boxplot(data, notch, position)
箱線図を描く
plt.bar(left, height, width, bottom)
棒グラフを描く
plt.barh(width, bottom, left, height)
横棒を描く
plt.polar(theta, r)
極座標図を描く
plt.pie(data, explode)
円グラフを描く
plt.psd(x, NFFT=256, pas_to, Fs)
パワースペクトル密度マップの描画
plt.specgram(x, NFFT=256, pas_to, F)
スペクトルを描く
plt.cohere(x, y, NFFT=256, Fs)
X-Yの相関関数の描画
plt.scatter(x, y)
xとyの長さが同じである散点図を描く
plt.step(x, y, where)
ステップ図を描く
plt.hist(x, bins, normed)
ヒストグラムを描く
plt.contour(X, Y, Z, N)
等値図を描く
plt.vlines(x, bins, normed)
垂直図を描く
plt.stem(x, y, linefmt, markerfmt)
薪の図を描く
plt.plot_date()
日付データの描画