import numpy as np
I.數據結構
numpy的底層語言爲C,因此nparray的解決了這個問題,nparray是np中最基礎的數據結構
1.nparray
list = [[1,3,5],[2,4,6]]
print(type(list))
np_list = np.array(list)
print(type(np_list))
# 可以用dtype指定數據類型,數據類型有很多種
np_list2 = np.array((list),dtype=float)
print(type(np_list2))
2.nparray的數據屬性
print(np_list.shape) # 形狀
print(np_list.ndim) # 維度
print(np_list.dtype) # 數據類型
print(np_list.itemsize) # 每個元素的大小
print(np_list.size) # 大小,總字節的itemsize*size
II.常用nparry
print(np.zeros((2,4))) # 生成2*4的全0矩陣
print(np.ones((3,5),dtype=np.int)) # 生成3*5的全1矩陣
print(np.random.rand(1,10)) # 生成2*4的範圍都在0-1的隨機數矩陣
print(np.random.rand()) # 生成單個0-1範圍內的隨機數
print(np.random.randint(1,10,3)) # 生成3個1-10之間的整數
print(np.random.randn(2*4)) # 生成2*4的標準正態分佈矩陣
print(np.random.choice([10,20,30])) # 從給的數裏面隨機選取一個
print(np.random.beta(1,10,100)) # 生成其他分佈,如beta分佈等
III.常用操作
print(np.arange(1,11).reshape(2,5)) # 1-10排列成2*5的矩陣
lst1 = np.array([10,20,30,40])
lst2 = np.array([4,3,2,1])
print(lst1 + lst2)
print(lst1 - lst2)
print(lst1 * lst2)
print(np.dot(lst1.reshape([2,2]),lst2.reshape([2,2]))) # 點乘
print(np.vstack((lst1,lst2))) # 縱向拼接
print(np.hstack((lst1,lst2))) # 橫向拼接
print(np.split(lst1,4)) # 拆分
IV.矩陣操作和線性方程組
from numpy.linalg import *
print(np.eye(3)) # 設置一個3*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)) # 解方程組
V.其他應用
print(np.corrcoef([1,0,1],[0,2,1])) # 皮爾遜相關係數