python Numpy快速入門

2021-09-20 14:49:58 字數 3340 閱讀 4551

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 中把每乙個分割槽和某乙個目錄對應,以...