numpy是python中非常常用的庫,這裡我們介紹一些numpy的常見語法。
import numpy as np #使用別名,方便
numpy中建立的陣列型別為』『ndarray』』,以下總結一些常見的建立numpy陣列的方法。
函式說明
np.zeros((shape))
建立乙個shape形狀的零陣列
np.ones((shape))
建立乙個shape形狀的全1陣列
np.full((shape),num)
建立乙個shape形狀的值全為num的陣列
np.eye(n)
建立乙個n * n形狀的單位陣列
np.random.random((shape))
建立乙個shape形狀的隨機數組
np.arange(begin,end,step)
以begin為起點,以step為步長累加,直到不超過end(且不等於end),預設step=1
np.linspace(begin,end,n)
將區間[begin,end]切分為n等份
np.array(list|tuple)
通過list或tuple建立numpy陣列
一下總結一些numpy陣列的常見屬性。
屬性說明
a.dtype
返回陣列中元素的型別
a.size
返回陣列中元素的總個數
a.shape
返回陣列的形狀
a.itemsize
返回陣列中每乙個元素占用的位元組數
a.ndim
返回陣列的維數
運算說明
a.reshape((shape))
調整陣列形狀
a * b
陣列元素對應元素相乘,線性代數中的點乘
a.dot(b)
矩陣相乘,線性代數中的矩陣乘法,特別注意!
a.sum()/np.sum(a,axis)
求陣列元素之和,使用axis也可以求各個維度之和
a.min()/np.min(a)
求陣列最小值
a.max()/np.max(a)
求陣列最大值
a.cumsum()
遞迴相加
a.t獲取陣列的轉置矩陣
下面總結一些本人經常遇到的函式和用法。
numpy中的切片
numpy中的切片可以說是最常用的語法了,下面介紹常見的幾種用法。
a=np.arange(0,
100,10)
indices=[1
,5,-
1]b=a[indices]
print
(a)#[ 0 10 20 30 40 50 60 70 80 90]
print
(b)#[10 50 90]
a=np.linspace(0,
10,10)
b=np.sin(a)
print
(a)#[ 0. 1.11111111 2.22222222 3.33333333 4.44444444 5.55555556 6.66666667 7.77777778 8.88888889 10. ]
print
(b)#[ 0. 0.8961922 0.79522006 -0.19056796 -0.96431712 -0.66510151 0.37415123 0.99709789 0.51060568 -0.54402111]
mask=b>
0#獲取到乙個布林陣列
print
(b[mask]
)#[0.8961922 0.79522006 0.37415123 0.99709789 0.51060568]
a=np.arange(0,
100,10)
b=a[:5
]c=a[a>=50]
print
(b)#[ 0 10 20 30 40]
print
(c)#[50 60 70 80 90]
numpy廣播機制
建議參考一些部落格,這裡不介紹了(相對較複雜)。
對numpy中axis的理解
參考:徹底理解numpy中的axis
這個東西時間久了也會忘記,所以最好的辦法就是用的時候在python終端比較一下axis=0和axis=1的區別(或者看文件例子)。
numpy陣列的拼接
numpy中常用的拼接函式有一下幾種:
當axis=none的時候對arr和values沒有形狀要求,最終結果會被展平。當axis不等於none的時候,arr和values的形狀要相同。(直接翻譯文件了)
np.hstack()
np.hstack()進行水平的拼接。
a=np.array((1
,2,3
))b=np.array((2
,3,4
))print
(np.hstack(
(a,b)))
#array([1,2,3,2,3,4])
a=np.array([[
1],[
2],[
3]])
b=np.array([[
4],[
5],[
6]])
print
(np.hstack(a,b)
)#array([[1,4],[2,5],[3,6]])
np.vstack()
np.vstack()進行垂直的拼接。
a=np.array([1
,2,3
])b=np.array([2
,3,4
])print
(np.vstack(
(a,b)))
#array([[1,2,3],[2,3,4]])
a=np.array([[
1],[
2],[
3]])
b=np.array([[
4],[
5],[
6]])
print
(np.vstack(
(a,b)))
#array([[1],[2],[3],[4],[5],[6]])
(計算機視覺)計算機視覺基礎
opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...
計算機視覺系列 1 任務及應用
做工程第一步,確定任務,標註資料 下圖很好的展示了影象識別的四種任務 如圖 a 給定一張輸入影象,影象分類的任務是判斷該影象屬於哪類,如果是多工分類,可以用於分類該影象包含哪個類別。所以該類任務的標註非常簡單,只需要標註的種類即可.如果是多工的,只需要多標註幾種是否包含某類物品即可 如圖 b 目標定...
計算機視覺
主講老師 曹洋 課程 視覺 基礎 底 層處理 影象處理 特徵提 取 中 層處理 影象分割 相機標 定 深度 估計 運 動估計 高層處 理 3d 重建 目 標識別 視 覺基 礎 底層 處理 圖 像處理 特徵提取 中層 處理 圖 像分割 相機標定 深度估 計 運動 估計 高層處理 3d重 建 目標 識別...