使用Numpy讓你的Python科學計算更高效php
download:《極客時間》分佈式數據庫30講
算法
避免採用隱式拷貝,而是採用就地操做的方式數據庫
能夠提升計算速度數組
ndarray分佈式
NumPy數組中的維數稱爲秩(rank),一個線性的數組稱爲一個軸(axes),秩就是描述軸的數量。ide
建立數組函數
import numpy as npui
a = np.arrary([1, 2, 3,])spa
b = np.array([1, 2, 3], [4, 5, 6], [7, 8, 9])orm
b[1, 1] = 10
print a.shape
print b.shape
print a.dtype
print b
運行結果
(3L,)
(3L, 3L)
int32
[[1 2 3]
[4 10 6]
[7 8 9]]
結構數組
import numpy as np
persontype = np.dtpye({
'name':['name', 'age', 'chinese', 'math', 'english'],
'formats':['s32', 'i', 'i', 'i', 'f']} # 定義結構
peoples = np.array(["ZhangFei", 32, 75, 100, 90),("GuanYu", 24, 85 , 96, 88.5),
("ZhaoYun", 28, 85, 92, 96.5),("HuangZhong", 29, 65, 85, 100)],
dtype = persontype)
ages = peoples[:]['age']
chinese = peoples[:]['age']
maths = peoples[:]['chinese']
englishs = peoples[:]['english']
print np.mean(ages) # 求平均值
print np.mean(chinese)
print np.mean(maths)
print np.mean(englishs)
ufunc運算
x1 = np.arange(1,11,2) # 建立等差數組:初始值,終值,步長
x2 = np.linspace(1,9,5) # 建立等差數組:初值、終值,元素個數
算法運算
x1 = np.arange(1,11,2)
x2 = np.linspace(1,9,5)
print np.add(x1, x2) # 加
print np.substact(x1, x2) # 減
print np.multiply(x1, x2) # 乘
print np.divide(x1, x2) # 除
print np.power(x1, x2) # 冪
print np.remainder(x1, x2) # 取餘 np.remainder()與np.mod()同樣
統計函數
'''
計算矩陣的最大最小值
'''
import numpy as np
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.amin(a)
print np.amin(a,0)
print np.amin(a,1)
print np.amax(a)
print np.amax(a,0)
print np.amax(a,1)
計算加權平均值
a = np.array([1,2,3,4])
wts = np.array([1,2,3,4])
print np.average(a)
print np.average(a, weights=wts) # 計算加權平均值
統計數組中的標準差std()、方差var()
a = np.array([1,2,3,4])
print np.std(a) # 計算標準差
print np.var(a) # 計算方差
NumPy 排序
'''
默認爲快速排序,能夠指定kind爲quicksort、
mergesort、heapsort,即快速排序、合併排序、堆排序。axis能夠指定爲-1,1,None.
'''
a = np.array([[4,3,2],[2,4,1]]
print np.sort(a)
print np.sort(a, axis=None)# 扁平化排序
print np.sort(a,axis=0)# 按列排序
prin np.sort(a, axis=1)# 按行排序