numpy是python的乙個矩陣處理庫,提供了大量點矩陣處理函式,其內部通過c語言實現,執行速度快。
1.一維numpy陣列
使用numpy提供的arange(n)函式可以建立乙個包含n個元素的numpy陣列,取值分別為0~n-1.
>>>
from numpy import *
>>> a=arange(4)
>>> a
array([0, 1, 2, 3])
>>> a.shape
(4,)
>>>
使用array()建立numpy陣列.
>>> mm=array((4,5,1))
>>> mm
array([4, 5, 1])
>>> pp=array((10,20,30))
>>> pp
array([10, 20, 30])
>>> mm+pp
array([14, 25, 31])
>>> pp*2
array([20, 40, 60])
使用標準的python時,向量運算需要迴圈實現,使用numpy可以直接運算. 對每個元素平方:
>>> mm**2
array
([16, 25, 1])
訪問元素:
>>> mm[1]
5>>> pp[2]
30>>>
2*mm[1]
10>>>
2. 多維numpy陣列>>> jj=array([[1,2,3],[4,5,6],[7,8,9]])
>>> jj
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
陣列訪問:
>>> jj[1]
array([4, 5, 6])
>>> jj[1][1]
5>>> jj[0,2]
3
陣列相乘
>>> a1=array([1,2,3])
>>> b1=array([4,8,10])
>>> a1*b1
array([ 4, 16, 30])
>>> a2=array([[2,3,4],[5,6,7]])
>>> b2=array([[1,2,3],[4,5,6]])
>>> a2*b2
array([[ 2, 6, 12],
[20, 30, 42]])
>>>
可以看到numpy陣列相乘,兩個陣列行和列都是相同的,然後對應位置相乘。陣列乘法和矩陣乘法還是有區別的,矩陣乘法中兩個矩陣必須滿足m*n和n*k的條件。
3.numpy矩陣
建立numpy矩陣需要匯入matrix或mat模組
>>> from numpy import mat,matrix
>>> m1=mat([[1,2,3],[2,3,1]])
>>> m1
matrix([[1, 2, 3],
[2, 3, 1]])
>>> m2=mat([[1,1,2],[2,1,1]])
>>> m2
matrix([[1, 1, 2],
[2, 1, 1]])
>>> m1*m2
traceback (most recent call last):
file "", line 1, in
file "/library/frameworks/python.framework/versions/3.5/lib/python3.5/site-packages/numpy/matrixlib/defmatrix.py", line 343, in __mul__
return n.dot(self, asmatrix(other))
valueerror: shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)
這時候m1*m2會發生錯誤,m1,m2 都為2*3的矩陣,因此不能相乘。把m2轉置為3*2的矩陣:
>>> m2.t
matrix([[1, 2],
[1, 1],
[2, 1]])
>>> m1*m2.t
matrix([[9, 7],
[7, 8]])
如果想把矩陣m1和m2中的元素對應相乘,可以使用multiply函式:
>>> from numpy import multiply
>>> m1
matrix([[1, 2, 3],
[2, 3, 1]])
>>> m2
matrix([[1, 1, 2],
[2, 1, 1]])
>>> multiply(m1,m2)
matrix([[1, 2, 6],
[4, 3, 1]])
使用shape函式檢視矩陣的維數:
>>> m1.shape
(2, 3)
使用sort函式可以把矩陣中的每一行元素進行排序:
>>> m3=mat([[7,5,4],[9,8,7],[5,2,0]])
>>> m3
matrix([[7, 5, 4],
[9, 8, 7],
[5, 2, 0]])
>>> m3.sort()
>>> m3
matrix([[4, 5, 7],
[7, 8, 9],
[0, 2, 5]])
計算矩陣平均值:
>>> m3.mean()
5.2222222222222223
取出某一行元素:
>>> m3
matrix([[4, 5, 7],
[7, 8, 9],
[0, 2, 5]])
>>> m3[1,:]
matrix([[7, 8, 9]])
>>> m3[2,:]
matrix([[0, 2, 5]])
取指定範圍元素, 如取出矩陣m3中第三行中的第二列和第三列,也就算2和5:
>>> m3[2,1:3]
matrix([[2, 5]])
官方文件:numpy-1.10.1 Flask入門二 快速入門
from flask import flask 路由裝飾器 defhello world 檢視函式 return hello world 返回乙個字串 if name main 把程式儲存為hello.py 用python直譯器執行 python hello.py running on訪問 會看見 ...
adb shell 入門 ADB快速入門
一 簡介 android debug bridge,我們一般簡稱為adb,主要存放在sdk安裝目錄下的platform tools資料夾中,它是乙個非常強大的命令列工具,通過這個工具用來連線電腦和android裝置 手機 電腦 電視 平板 電視盒子等 二 安裝 提取碼 54zh 2.解壓檔案包到固定...
Linux快速入門
linux快速入門 1 基礎概念 檔案系統 分割槽和掛載 檔案系統是指作業系統中與管理檔案有關的軟體和資料。linux 的檔案系統和windows中的檔案系統有很大的區別,在windows 下,目錄結構屬於分割槽 linux 下,分割槽屬於目錄結構。在linux 中把每乙個分割槽和某乙個目錄對應,以...