Numpy 基礎(chǔ)
- 操作對(duì)象:
Vectors:一組相同的對(duì)象,方便計(jì)算宾添。
Metrics:二維矩陣
Arrays:多維數(shù)組船惨。
Vectorized computing 向量化計(jì)算柜裸,批量對(duì)數(shù)據(jù)進(jìn)行處理。 - 實(shí)際語法
import numpy as np #導(dǎo)入 numpy 包
lst = [10, 20, 30, 40] #可以創(chuàng)建列表 []
arr = np.array([10, 20, 30, 40]) #也可以傳入列表來創(chuàng)建一個(gè)數(shù)組
lst[1] #用下標(biāo)來訪問列表內(nèi)容粱锐。
arr[0] # array 是一維數(shù)組疙挺,也用類似列表方式訪問。
arr[-1] #訪問最后一個(gè)參數(shù)
arr[2:] #從下標(biāo)2開始的所有對(duì)象
lst[-1] = 'a string inside a list' #List 對(duì)象可以異質(zhì)怜浅, Array 必須同質(zhì)
arr.dtype # dtype 可以了解數(shù)據(jù)類型
arr[-1] = 1.234 #數(shù)據(jù)將會(huì)被強(qiáng)制轉(zhuǎn)型為 1
np.zeros(5, dtype=float) #可以創(chuàng)建初始值為0铐然,1的數(shù)組
np.zeros(3, dtype=complex) #還可以創(chuàng)建復(fù)數(shù)
np.ones(5,dtype = float)
a = np.empty(4) #可以創(chuàng)建空數(shù)組,并用自己需要進(jìn)行賦值恶座。
a.fill(3.7)
np.arange(5) #創(chuàng)建遞增序列
np.linespace(0,10,6) #創(chuàng)建0搀暑,2,4跨琳,6险掀,8,10 的等差數(shù)列
np.logspace(1,3,4) #創(chuàng)建10的1次方湾宙,到10的3次方之間的對(duì)數(shù) 數(shù)列
np.random.randn(5) #創(chuàng)建隨機(jī)值數(shù)組
np.random.normal(10,2,5)#創(chuàng)建符合正態(tài)分布的均值10樟氢,標(biāo)準(zhǔn)差2的數(shù)列
norm10[norm10 > 9] = 0 #可以按條件選取對(duì)象,只要大于9的都賦為0
lst2 = [[1,2],[3,4]] #創(chuàng)建二維數(shù)組
lst2[0,1] #直接用下標(biāo)訪問
arr = np.random.normal(10,3,(2,4))
arr.reshape(4.2) #改變數(shù)組形狀
arr1 = arr #數(shù)組復(fù)制是指針侠鳄,修改內(nèi)容其它數(shù)組也會(huì)變化
arr2[:,2] #數(shù)組可以切片訪問, 代表所有行埠啃,下標(biāo)2的第3列
arr2[1] #指第2行
arr2.min()#最小值
arr2.max()#最大值
arr2.sum()#求和
arr2.prod()#求積
arr2.mean()#平均值
arr2.std()#標(biāo)準(zhǔn)差
arr2.sum(axis = 1) #不考慮第2個(gè)維度求和
arr.T # 轉(zhuǎn)置
arr1 + arr2 #每個(gè)位置分別相加
1.5 * arr1 #低維會(huì)向高維補(bǔ)足,每個(gè)位置都 1.5
np.dot(V1,V2) # dot 代表矩陣乘法
np.savetxt('test.out', arr, fmt='%.2e', header="My dataset") #保存到磁盤
arr2 = np.loadtxt('test.out') #讀取數(shù)據(jù)
補(bǔ)充閱讀材料
- numpy.org
- 利用python 進(jìn)行數(shù)據(jù)分析 第4章
3 Numerical Python 第2章 - Scipy Lectures 第3章
- 歐姆社學(xué)習(xí)漫畫:漫畫線性代數(shù)
作業(yè)
使用循環(huán)和向量化兩種不同的方法來計(jì)算100以內(nèi)質(zhì)數(shù)之和。
模擬一個(gè)醉漢在二維空間上的隨機(jī)漫步伟恶。
使用梯形法計(jì)算一個(gè)二次函數(shù)的數(shù)值積分碴开。