Numpy的基本使用詳解-機器學習基礎(代碼均可獨立運行)

Numpy是一個Python語言下的矩陣運算的包,因爲機器學習中會涉及一些非常複雜的矩陣運算,使用基本的pyhon中的數據結構操作起來很麻煩,於是就誕生了很多矩陣運算的專用包,Numpy是其中使用最多的一個,舉個例子,opencv的python版本中就是用了Numpy矩陣來表示圖片:

我們來看一下打印結果:

本文目的是介紹Numpy最常見的一些用法,我會嘗試使用最簡短的代碼解釋清楚Numpy的用法,下面的每一段代碼都可以獨立運行。

 

 

1 Numpy創建數組

1.1 創建一個一維數組

import numpy as np
arr = np.array([1, 2, 3, 4, 5])

數組中的元素必須是同一個類型,如果是不同的類型,會發生自動的類型轉換,如下:

import numpy as np
arr = np.array(["char", True, 3, 4, 5])
print(arr)

打印的結果如下:

顯然所有的元素都被轉換成了字符串類型。

 

1.2 創建多維數組

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])

 

1.3 創建指定長度的數組

第一種方式是未初始化的數組,數組元素的值是隨機的,下面的代碼創建了一個6行2列的int類型的數組

import numpy as np
arr = np.empty([6,2], dtype = int) 

第二種方式是已經初始化的數組,比如全0的數組或者全1的數組

import numpy as np
arr = np.zeros([4, 2])

 

 

2 Numpy中數組的讀寫

2.1 修改數組中的元素

import numpy as np
arr = np.zeros([4, 2])
arr[0][1] = 1

 

2.2 讀取數組中的元素

import numpy as np
arr = np.zeros([4, 2])
arr[0][1] = 1
print(arr[0][1])

 

2.3 尾部添加元素

import numpy as np
arr = np.zeros([6])
np.append(arr, 7)
print(arr)
arr = np.append(arr, 7)
print(arr)

這段代碼的輸出如下:

需要注意的兩點是:

append方法的調用者是numpy本身

append不改變參數中的數組,需要將結果返回給原來的數組

 

 

3 數組整體操作

3.1 兩個數組相加

import numpy as np
arr1 = np.array([1.5,2.5,3.5])
arr2 = np.array([2.5,3.5,4.5])
arr = arr1 + arr2
print(arr)

輸出如下:

 

3.2 數組和常數相加

import numpy as np
arr1 = np.array([1.5,2.5,3.5])
arr = arr1 + 0.5
print(arr)

輸出如下:

其它的如乘法、除法、乘方的原理相同,都是對數組裏面的每一個元素單獨做對應的操作

 

 

4 取出數組的指定行或者指定的列

4.1 取出一維數組中的奇數號元素

import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
index = range(0, 9, 2)
arrSig = arr[index]
print(arrSig)

 

4.2 取出二維數組中前三行

import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[0:2, :])

輸出如下:

 

4.2 取出二維數組中前兩列

import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[:, 0:2])

輸出如下:

 

4.3 取出二維數組中的前兩行,再從這前兩行中取出前兩列

import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[0:2, 0:2])

輸出如下:

先寫這麼多,有空再添加

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章