Python Numpy
Numpy底層是用C寫的,所以ndarray(np.array)運行速度比內置的list快,但是不能裝下太多的東西。
簡單介紹數組
np_list = np.array(lst, dtype=int)#設置數據類型
print(type(np_list))#輸出類型
print(np_list.shape)#查看矩陣是幾行幾列
print(np_list.ndim)#查看矩陣維度
print(np_list.itemsize)#查看每個元素所佔字節
print(np_list.size)#查看一共包含多少元素
#Rand 隨機生成一個數
print(np.random.rand())
#Randint隨機生成1到100的整數,生成5個
print(np.random.randint(1, 100, 5))
#Randn隨機生成一個3*3的正態分佈
print(np.random.randn(3, 3))
#Choice隨機從數組中選取一個數
print(np.random.choice([12, 22, 44, 333, 55]))
#Distribute生成一個beta分佈,生成20個數據
print(np.random.beta(1, 5, 20))
運用numpy 的運算
lst = np.arange(1, 11).reshape([2, -1])#將等差數列塑造成2行矩陣
print(lst)
print(np.exp(lst))#輸出其exp
print(np.exp2(lst))
print(np.sqrt(lst))
print(np.sin(lst))
print(np.log10(lst))
lst = np.array([[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]],
[[17, 18, 19, 20],
[21, 22, 23, 24]]])#構成一個三維矩陣
print(lst.sum(axis=0))#輸出當係數爲0的時候的和,爲2*4
print(lst.sum(axis=1))#輸出當係數爲1的時候的和,爲3*4
print(lst.sum(axis=2))#輸出當係數爲2的時候的和,爲3*2
print(lst.max(axis=0))#同上,只是判斷的是最大值的數組構成的矩陣
print(lst.min(axis=1))#同上,只是判斷的是最小值的數組構成的矩陣
lst1 = np.array([10, 20, 30, 40])
lst2 = np.array([4, 3, 2, 1])
#一系列的加減乘除
print(lst1 + lst2)
print(lst1 - lst2)
print(lst1 / lst2)
print(lst1 * lst2)
print(lst1**2)
print(np.dot(lst1.reshape([2, 2]), lst2.reshape([2, 2])))#進行矩陣的點乘
print(np.concatenate((lst1, lst2), axis=0))#顯示出一個單排的矩陣,axis最好是默認,形成一行
print(np.vstack((lst1, lst2)))#形成2行矩陣
print(np.hstack((lst1, lst2)))#形成單獨一行矩陣
print(np.split(lst2, 2))將矩陣分割成兩個
線性方程 print(np.eye(3))#獲取單位矩陣
lst = np.array([[1, 2],
[3, 4]])
#求矩陣的逆
print(inv(lst))
#轉置
print(lst.transpose())
#求行列式
print(det(lst))
#特徵值和特徵向量
print(eig(lst))
y = np.array([[5], [7]])
print(solve(lst, y))#已知一個矩陣和最後矩陣的解,求運算過程中的另一個矩陣值
#生成多元一次函數
print(np.poly1d([2, 1, 3]))