a = np.array([0,30,45,60,90])
print ('不一樣角度的正弦值:')
# 經過乘 pi/180 轉化爲弧度
print (np.sin(a*np.pi/180))
print ('\n')
print ('數組中角度的餘弦值:')
print (np.cos(a*np.pi/180))
print ('\n')
print ('數組中角度的正切值:')
print (np.tan(a*np.pi/180))
不一樣角度的正弦值: [0. 0.5 0.70710678 0.8660254 1. ] 數組中角度的餘弦值: [1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01 6.12323400e-17] 數組中角度的正切值: [0.00000000e+00 5.77350269e-01 1.00000000e+00 1.73205081e+00 1.63312394e+16]
import numpy as np
a = np.array([1.0,5.55, 123, 0.567, 25.532])
print ('原數組:')
print (a)
print ('\n')
print ('舍入後:')
print (np.around(a))
原數組: [ 1. 5.55 123. 0.567 25.532] 舍入後: [ 1. 6. 123. 1. 26.]
import numpy as np a = np.array([-1.7, 1.5, -0.2, 0.6, 10]) print ('原數組:') print (a) print ('\n') print ('floor 後的數組:') print (np.floor(a))
原數組: [-1.7 1.5 -0.2 0.6 10. ] floor 後的數組: [-2. 1. -1. 0. 10.]
import numpy as np a = np.array([-1.7, 1.5, -0.2, 0.6, 10]) print ('原數組:') print (a) print ('\n') print ('ceil 後的數組:') print (np.ceil(a))
原數組: [-1.7 1.5 -0.2 0.6 10. ] ceil 後的數組: [-1. 2. -0. 1. 10.]
add() 加法python
a = np.arange(9, dtype = np.float_).reshape(3,3) print ('第一個數組:') print (a) print ('\n') print ('第二個數組:') b = np.array([10,10,10]) print (b) print ('\n') print ('兩個數組相加:') print (np.add(a,b))
第一個數組: [[0. 1. 2.] [3. 4. 5.] [6. 7. 8.]] 第二個數組: [10 10 10] 兩個數組相加: [[10. 11. 12.] [13. 14. 15.] [16. 17. 18.]]
subtract()減法
a = np.arange(9, dtype = np.float_).reshape(3,3) print ('第一個數組:') print (a) print ('\n') print ('第二個數組:') b = np.array([10,10,10]) print (b) print ('\n') print ('兩個數組相減:') print (np.subtract(a,b))
第一個數組: [[0. 1. 2.] [3. 4. 5.] [6. 7. 8.]] 第二個數組: [10 10 10] 兩個數組相減: [[-10. -9. -8.] [ -7. -6. -5.] [ -4. -3. -2.]]
下邊再也不演示數組
reciprocal() 倒數
import numpy as np
a = np.array([0.25, 1.33, 1, 100]) print ('原數組:') print (a) print ('\n') print ('調用 reciprocal 函數:') print (np.reciprocal(a))
原數組: [ 0.25 1.33 1. 100. ] 調用 reciprocal 函數: [4. 0.7518797 1. 0.01 ]
import numpy as np a = np.array([10,100,1000]) print ('原組是;') print (a) print ('\n') print ('調用 power 函數:') print (np.power(a,2)) print ('\n') print ('第二個數組:') b = np.array([1,2,3]) print (b) print ('\n') print ('再次調用 power 函數:') print (np.power(a,b))
原組是; [ 10 100 1000] 調用 power 函數: [ 100 10000 1000000] 第二個數組: [1 2 3] 再次調用 power 函數: [ 10 10000 1000000000]
import numpy as np a = np.array([10,20,30]) b = np.array([3,5,7]) print ('第一個數組:') print (a) print ('\n') print ('第二個數組:') print (b) print ('\n') print ('調用 mod() 函數:') print (np.mod(a,b)) print ('\n') print ('調用 remainder() 函數:') print (np.remainder(a,b))
第一個數組: [10 20 30] 第二個數組: [3 5 7] 調用 mod() 函數: [1 0 2] 調用 remainder() 函數: [1 0 2]
把每一個元素的最小(大)值取出,放進一個數組中dom
import numpy as np a = np.array([[3,7,5],[8,4,3],[2,4,9]]) print ('原數組:') print (a) print ('\n') print ('調用 amin() 函數:') print (np.amin(a,1)) print ('\n') print ('再次調用 amin() 函數:') print (np.amin(a,0)) print ('\n') print ('調用 amax() 函數:') print (np.amax(a)) print ('\n') print ('再次調用 amax() 函數:') print (np.amax(a, axis = 0))
原數組: [[3 7 5] [8 4 3] [2 4 9]] 調用 amin() 函數: [3 3 2] 再次調用 amin() 函數: [2 4 3] 調用 amax() 函數: 9 再次調用 amax() 函數: [8 7 9]
import numpy as np a = np.array([[30,65,70],[80,95,10],[50,90,60]]) print ('原數組:') print (a) print ('\n') print ('調用 median() 函數:') print (np.median(a)) print ('\n') print ('沿軸 0 調用 median() 函數:') print (np.median(a, axis = 0)) print ('\n') print ('沿軸 1 調用 median() 函數:') print (np.median(a, axis = 1))
原數組: [[30 65 70] [80 95 10] [50 90 60]] 調用 median() 函數: 65.0 沿軸 0 調用 median() 函數: [50. 90. 60.] 沿軸 1 調用 median() 函數: [65. 80. 60.]
import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print ('原數組:') print (a) print ('\n') print ('調用 mean() 函數:') print (np.mean(a)) print ('\n') print ('沿軸 0 調用 mean() 函數:') print (np.mean(a, axis = 0)) print ('\n') print ('沿軸 1 調用 mean() 函數:') print (np.mean(a, axis = 1))
原數組: [[1 2 3] [3 4 5] [4 5 6]] 調用 mean() 函數: 3.6666666666666665 沿軸 0 調用 mean() 函數: [2.66666667 3.66666667 4.66666667] 沿軸 1 調用 mean() 函數: [2. 4. 5.]
import numpy as np print (np.std([1,2,3,4])) print (np.var([1,2,3,4]))
1.118033988749895 1.25
import numpy as np a = np.array([[3,7],[9,1]]) print ('原數組:') print (a) print ('\n') print ('調用 sort() 函數:') print (np.sort(a)) print ('\n') print ('按列排序:') print (np.sort(a, axis = 0)) print ('\n') # 在 sort 函數中排序字段 dt = np.dtype([('name', 'S10'),('age', int)]) a = np.array([("raju",21),("anil",25),("ravi", 17), ("amar",27)], dtype = dt) print ('原數組:') print (a) print ('\n') print ('按 name 排序:') print (np.sort(a, order = 'name'))
原數組: [[3 7] [9 1]] 調用 sort() 函數: [[3 7] [1 9]] 按列排序: [[3 1] [9 7]] 原數組: [(b'raju', 21) (b'anil', 25) (b'ravi', 17) (b'amar', 27)] 按 name 排序: [(b'amar', 27) (b'anil', 25) (b'raju', 21) (b'ravi', 17)]
import numpy as np x = np.array([3, 1, 2]) print ('原數組:') print (x) print ('\n') print ('對 x 調用 argsort() 函數:') y = np.argsort(x) print (y) print ('\n') print ('以排序後的順序重構原數組:') print (x[y]) print ('\n') print ('使用循環重構原數組:') for i in y: print (x[i])
原數組: [3 1 2] 對 x 調用 argsort() 函數: [1 2 0] 以排序後的順序重構原數組: [1 2 3] 使用循環重構原數組: 1 2 3
import numpy as np x = np.arange(9.).reshape(3, 3) print ('原數組:') print (x) print ( '大於 3 的元素的索引:') y = np.where(x > 3) print (y) print ('使用這些索引來獲取知足條件的元素:') print (x[y])
原數組: [[0. 1. 2.] [3. 4. 5.] [6. 7. 8.]] 大於 3 的元素的索引: (array([1, 1, 2, 2, 2]), array([1, 2, 0, 1, 2])) 使用這些索引來獲取知足條件的元素: [4. 5. 6. 7. 8.]
import numpy as np a = np.array([[10,10], [2,3], [4,5]]) print ('數組 a:') print (a) print ('建立 a 的深層副本:') b = a.copy() print ('數組 b:') print (b) # b 與 a 不共享任何內容 print ('咱們可以寫入 b 來寫入 a 嗎?') print (b is a) print ('修改 b 的內容:') b[0,0] = 100 print ('修改後的數組 b:') print (b) print ('a 保持不變:') print (a)
數組 a: [[10 10] [ 2 3] [ 4 5]] 建立 a 的深層副本: 數組 b: [[10 10] [ 2 3] [ 4 5]] 咱們可以寫入 b 來寫入 a 嗎? False 修改 b 的內容: 修改後的數組 b: [[100 10] [ 2 3] [ 4 5]] a 保持不變: [[10 10] [ 2 3] [ 4 5]]
import numpy as np a = np.arange(6) print ('原數組:') print (a) print ('調用 id() 函數:') print (id(a)) print ('a 賦值給 b:') b = a print (b) print ('b 擁有相同 id():') print (id(b)) print ('修改 b 的形狀:') b.shape = 3,2 print (b) print ('a 的形狀也修改了:') print (a)
原數組: [0 1 2 3 4 5] 調用 id() 函數: 139630489172528 a 賦值給 b: [0 1 2 3 4 5] b 擁有相同 id(): 139630489172528 修改 b 的形狀: [[0 1] [2 3] [4 5]] a 的形狀也修改了: [[0 1] [2 3] [4 5]]
import numpy.matlib import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[11,12],[13,14]]) print(np.dot(a,b))
[[37 40] [85 92]]
import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[11,12],[13,14]]) # vdot 將數組展開計算內積 print (np.vdot(a,b))
130
import numpy as np print (np.inner(np.array([1,2,3]),np.array([0,1,0])))
2
import numpy.matlib
import numpy as np
a = [[1,0],[0,1]]
b = [[4,1],[2,2]]
print (np.matmul(a,b))ide
[[4 1] 函數
[2 2]]spa
import numpy as np
a = np.array([[1,2], [3,4]])
print (np.linalg.det(a))code
-2.0000000000000004orm
$\left\{\begin{matrix}
x+y+z=6
& \\ 2y+5z=-4
& \\ 2x+5y-z=27
\end{matrix}\right.$對象
$\begin{bmatrix}
1&1 &1 \\
0&2 &5 \\
2& 5& -1
\end{bmatrix}
\begin{bmatrix}
x\\
y\\
z
\end{bmatrix}
=\begin{bmatrix}
6\\
-4\\
27
\end{bmatrix}$blog
import numpy as np a = np.array([[1,1,1],[0,2,5],[2,5,-1]]) print ('數組 a:') print (a) print ('矩陣 b:') b = np.array([[6],[-4],[27]]) print (b) x = np.linalg.solve(a,b) print ('求解') print (x)
數組 a: [[ 1 1 1] [ 0 2 5] [ 2 5 -1]] 矩陣 b: [[ 6] [-4] [27]] 求解 [[ 5.] [ 3.] [-2.]]
持久化(將這個對象保存到硬盤上)
使用 H5PY ,PICKLE
# -*- coding: utf-8 -*- # 斌彬電腦 # @Time : 2019-03-28 上午 9:31 import pickle import numpy as np A = 1000 def pickle_dump(): """ 數據持久化 :return: """ with open('sampk.pkl', 'wb') as f: # 生成二維的隨機數 array = np.random.randn(A, A) pickle.dump(array, f) print('持久化{}'.format(array)) def pickle_load(): """ 反持久化 :return: """ with open('sampk.pkl', 'rb') as f: array = pickle.load(f) print('反持久化{}'.format(array)) if __name__ == '__main__': pickle_dump() pickle_load()
# -*- coding: utf-8 -*- # 斌彬電腦 # @Time : 2019-03-28 下午 4:53 import numpy as np import h5py import numpy as np import h5py '''h5py就是以 k, v 的形式存儲''' N = 1000 def pickle_serialization(): """ 持久化 :return: """ with h5py.File("sample.h5", "w") as hf: array = np.random.randn(N, N) # 能夠示爲生成個 group 的文件夾 group = hf.create_group("group") # dataset 能夠示爲是個列表 group.create_dataset("dataset", data=array) print("持久化: {}".format(array)) def pickle_deserialization(): """ 反持久化 :return: """ with h5py.File("sample.h5", "r") as hf: for key in hf.keys(): group = hf.get(key) for item in group.items(): print("After deserialization: {}".format(group[item[0]].value)) if __name__ == '__main__': pickle_serialization() pickle_deserialization()