Numpy入門(四)深入學習Numpy模組
阿新 • • 發佈:2018-12-06
1 linalg模組
import numpy as np
A = np.mat("0 1 2; 1 0 3; 4 -3 8")
A
matrix([[ 0, 1, 2],
[ 1, 0, 3],
[ 4, -3, 8]])
# 矩陣的逆
np.linalg.inv(A)
matrix([[-4.5, 7. , -1.5],
[-2. , 4. , -1. ],
[ 1.5, -2. , 0.5]])
A * np.linalg.inv(A)
matrix([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])
A = np.mat("1 -2 1;0 2 -8;-4 5 9")
A
matrix([[ 1, -2, 1],
[ 0, 2, -8],
[-4, 5, 9]])
b = np.array([0,8,-9])
x = np.linalg.solve(A,b)
x
array([29., 16., 3.])
np.dot(A,x)
matrix([[ 0., 8., -9.]])
np.linalg.det(A)
1.9999999999999998
2 fft模組
from matplotlib. pyplot import *
x = np.linspace(0,2*np.pi,30)
wave = np.cos(x)
trans = np.fft.fft(wave)
plot(trans)
show()
D:\Anaconda3-5\lib\site-packages\numpy\core\numeric.py:492: ComplexWarning: Casting complex values to real discards the imaginary part return array(a, dtype, copy=False, order=order)
3 隨機數模組
N = 10000
normal_values = np.random.normal(size = N)
plot(normal_values)
show()
4 排序
a = np.random.randint(0,100,size=10)
a
array([80, 5, 42, 5, 30, 34, 12, 37, 65, 2])
np.sort(a)
array([ 2, 5, 5, 12, 30, 34, 37, 42, 65, 80])
b = np.random.randn(10)
b
array([ 0.24423767, -0.17118507, 0.48413289, -0.10999024, -1.16224052,
-0.59838132, -0.56166675, 0.51791264, 0.0882722 , 0.01779734])
for each in zip(a ,b):
print(each)
(80, 0.24423766862382038)
(5, -0.17118507409164932)
(42, 0.4841328947126019)
(5, -0.1099902424565808)
(30, -1.1622405164607184)
(34, -0.5983813182583405)
(12, -0.5616667452697109)
(37, 0.5179126359900825)
(65, 0.08827219948984628)
(2, 0.017797342769532515)
np.random.random(5)
array([0.57029857, 0.37006366, 0.82282303, 0.87245183, 0.68276258])
5 搜尋
a = np.array([2,4,8])
np.argmax(a)
2
b = np.array([np.nan,2,4])
np.nanargmax(b)
2
np.argwhere(a<5)
array([[0],
[1]], dtype=int64)
a=np.arange(7)
condition = (a%2) == 0
np.extract(condition,a)
array([0, 2, 4, 6])
np.nonzero(a)
(array([1, 2, 3, 4, 5, 6], dtype=int64),)