Numpy
數組的運算 多維的數組對象 , ndarray #1. 實際數據 . 2.元數據 描述信息
數組的基礎屬性 :
1 .ndim #維度 2 .shape #維度數值個數 3 .size #數組內容個數 4 .dtype #數組類型 5 .itemsize #數組內容占內存多少字節
數組的創建 :
# array() 數組內容是: 函數,列表,元組,數據,生成器,序列 import numpy as np #示例 np.array(range(10) np.array([1,2,3,4,5]) np.array([[1,2,3,4,5],[6,7,8,9,9]]) # arange() 類似於Python的 range() np.arange(10) #生成10個整數 np.arange(10.) #生成10個浮點型數值 np.arange(1,10,0.1) #從1到10 每隔0.1生成1個 np.arange(10000) #生成10000,顯示前3個,中間省略,顯示后面3個 # linspace() 返回在間隔[開始,停止]上 num個均勻的樣本 np.linspace(2.0,3.0,num=5) #2.0到3.0 生成5個均勻的值 np.linspace(2.0,3.0,num=5,endpoint=False) #endpoint 默認包頭包尾,False不包尾 np.linspace(2.0,3.0,num=5,retstep=True) #retstep 步長,分5個值得步長是多少 默認為False # zeros()/zeros_like()/ones()/ones_like() #數組生成,zeros 0填充 ones 1填充 *_like() np.zeros(5) #生成1維5個0 float類型 np.zeros((2,3,2),dtype=np.int) #生成2維,3列,0填充,類型為int32 因為多了個2 所以是3維的,可以任意維 # ↑↑↑ 語法 numpy.zeros(shape ,dtype=float,order='C'): 返回給定形狀和類型的新數組,用零填充.shape 是指形狀 np.zeros_like(np.arange(10)) #復制arr1 成一個新的數組,同樣的新的數組 # eye() 生成正方形的N*N的單位矩陣,對角線為1,其余為0 np.eye(10)
Numpy 的通用函數 基本操作 :
# 數組形狀 轉置,形狀變換,行列轉換 # .T / .reshape() / .resize() :返回一個新的數組 arr1.T arr2 = np.ones((5,10)) arr2.reshape(10,5) #形狀改變 np.resize(np.arange(1,13).reshape(3,4),(2,2)) #resize() 改變形狀,元素不夠填充 # 數組數據復制 .copy() : 數組的副本 arr1.copy() # 數據類型轉換 .astype() 參數 : np.數據類型 arr3.astype(np.int) #返回一個新的數組 int32 , float64 # 數組的堆疊和拆分 hstack() / vstack() / stack() np.hstack((數組1,數組2)) # 水平堆疊 , 行數要一致 np.vstack((數組1,數組2)) # 垂直堆疊 , 列數要一致 np.stack((數組1,數組2),axis=0|1) # 通過指定維度,軸,需要形狀相同 np.hsplit(數組,列數) # 水平拆分--按列 np.vsplit(數組,行數) # 垂直拆分--按行 # 數組的簡單運算 矢量化 # + / - / * / 除 / **1 / .mean() / .max() / .min() / .var()方差 / .std() 標准差 # 維度計算, 行,列 上述函數可添加參數 axis=行,列 sort() 參數為數組 數組排序
Numpy 索引和切片 :
ar = np.arange(16).reshape(4,4) ar[0] #切除一行 切片為下一個維度的一個元素 ar[0][-1] #二次索引,得到其中的一個值 ar[:3] #切出多行 ar[1,1] #類似二次索引 ar[:2 , 1:] #二維切片 # bool 布爾類型索引 False /True ar = np.arange(12).reshape(3,4) i = np.array([True,False,True]) j = np.array([False,True,False,False]) ar[i] #選所有為True ar[i,:] #選行 ar[i,j] #選列 # 基本的布爾類型 # 數組的基本運算bool > < != // % ar[ar > 5] #選取大於?的數
Numpy 隨機數 :
# Numpy隨機數 np.random np.random.normal(size=(5,5)) #符合標准正態分布的?*?樣本值 np.random.rand(4,5) # [0,1] 之間的隨機樣本或N維附件數組 均勻分布 np.random.randn(4,5) #生成一個浮點數或者N維的浮點數組 正態分布 # np.random.randint(low ,high=None,size=None ,size =None,dtype='1') # 生成一個整數或者N維的整數數組 若high不為None時,取[low,high]之間隨機整數 # 否則取值(0,low)之間隨機整數,且high必須大於low. dtype參數,只能是int類型 np.random.randint(0,10,size=6) # 取0到9隨機整數 ,長度6 np.random.randint(1,100,size=[3,5]) #size 參數[] 為[維度,長度]
Numpy 數據的存儲和讀取 :
# Numpy 輸入輸出,數據的存讀 np.save(路徑及文件.npy, 數組數據) np.load(路徑及文件.npy) #文本類數據 np.savetxt(路徑及文件.txt,數組,delimiter=',') delimiter 數據分割符 np.loadtxt(路徑及文件.txt,delimiter=',')