1. 程式人生 > >numpy安裝與常用的屬性方法

numpy安裝與常用的屬性方法

最近兩個月沒有更新部落格是因為我在嘗試使用keras進行影象識別,然後裡面就使用到了numpy,今天我就來寫一下numpy為什麼在機器學習領域那麼使用的那麼多,現在我們先來安裝一下numpy

簡單介紹numpy

numpy 底層採用c 語言編寫 它的主要的使用領域是科學技術領域,非常適合做矩陣運算
什麼是矩陣? 簡單說一下,我們都知道在任何一門程式語言裡面都有列表或者陣列的概念
也可以叫做向量vector 陣列或者列表是一維的就像這個樣子[1, 2, 3, 4, 5]而矩陣呢,你可以把它理解為多維的陣列大概像這樣的[[1 2 3], [4 5 6]] 這就叫做矩陣,而numpy 非常適合做矩陣運算。那這個numpy又是如何跟影象識別關聯起來的呢,首先我們來看一張圖片,如下圖

樓樓
在我們眼裡的圖片,可以看到是一隻貓,但是計算機如果要做識別,它要怎麼看這個圖呢。
答案就是把這個圖片轉為計算機可以識別的樣子。怎麼轉呢,什麼樣才是計算機可以識別的樣子
這裡我們就需要知道計算機要怎麼看圖了,我們都知道影象其實是由一個一個的畫素點組成的,我們把
畫素點使用數值來表達怎麼樣?使用0-255表示畫素點,顏色越深數值越高,反之越淺,就像下面的圖片
人類的眼中是這樣的(圖片來自知乎:https://www.zhihu.com/question/39022858)
8
計算機眼中是這樣的
在這裡插入圖片描述

現在我們知道了計算機可以識別的影象是什麼樣的了,現在需要解決的問題是,我們有影象了,如何把它轉成
計算機可以識別的樣子,這裡就需要使用python的視覺處理模組啦 cv2 模組
現在我們把剛才是圖片轉成計算機可以識別的樣子
mc

看到了嗎,影象被轉換成了矩陣!這樣就把numpy和機器學習關聯起來了,實際上tensorflow等框架在做影象識別的時候,輸入的資料就是這樣的影象矩陣!! 好啦扯遠啦。接下來繼續講numpy

安裝numpy(環境Linux)

pip install numpy

常用的屬性

1 檢視矩陣的資料型別
dtype
比如我們檢視剛才我們把圖片轉換成的矩陣資料型別是什麼

import numpy as np
import cv2
image = cv2.imread("cat.jpg")
image = np.array(image)
image.dtype

## out ##

dtype('uint8')

2 檢視矩陣的大小
shape

image.shape
## out ##
(407, 430, 3)
這個407 和 430 代表影象的寬度和高度, 3 代表RGB 三顏色在機器學習裡面叫做通道(channel)如果影象是黑白色的 這個就是 1

在這裡插入圖片描述

3 檢視矩陣的深度
ndim

image.ndim
## out ##

3

常用方法

1 生成隨機矩陣
根據給定維度生成[0,1)之間的資料,包含0,不包含1

numpy.random.rand(3, 2) 
## out ##
[[0.38723131 0.56080535 0.28986393]
 [0.52948079 0.49717751 0.42280896]
 [0.51374604 0.56677323 0.90121968]]

2 生成 一維矩陣
arange 這個和python 裡面的range 方法差不多

numpy.arange(6)
## out ##
array([0, 1, 2, 3, 4, 5])

3 將arange一維矩陣拆分成 n 維矩陣
reshape

numpy.arange(6).reshape((2, 3))

## out ##

array([[0, 1, 2],
       [3, 4, 5]])

4 建立矩陣

array 建立矩陣時裡面的元素資料型別可以制定,使用引數dtype 進行指定

array = numpy.array([[1, 2], [3, 4]])

5 求矩陣最大值,最小值,平均值
max
min
mean

numpy.max(array)
numpy.min(array)
numpy.mean(array)

## out ##
4
1
2.5

以上就是numpy 的一些常用屬性和方法,後續我會再回來補充如何使用keras進行影象識別,回見啦

在這裡插入圖片描述