python第三方庫之numpy基礎


前言

numpy是python的科學計算模塊,底層實現用c代碼,運算效率很高。numpy的核心是矩陣narray運算。

narray介紹

  • 矩陣擁有的屬性

ndim屬性:維度個數
shape屬性:維度大小
dtype屬性:數據類型

常用矩陣創建方法

import numpy as np
# 由列表轉化
np.array([[1,2],[3,4]])
# 創建多維隨機浮點數矩陣,區間0.0 ~ 1.0
arr = np.random.rand(3, 4)
# 創建多維整數矩陣,指定隨機區間
arr = np.random.randint(-1, 5, size = (3, 4))
# 創建多維隨機浮點數矩陣,指定區間
np.random.uniform(-1, 5, size = (3, 4))
# 創建全是0的矩陣
np.zeros((3,4))
# 仿照一個矩陣的形狀和類型創建0矩陣
np.zeros_like([3,4])
# 創建1的矩陣
np.ones((3,4))
#仿照一個矩陣的形狀和類型創建1矩陣
np.ones_like((3,4))
# 創建隨機值
np.empty((3,4))
# 對原來矩陣打亂順序
np.random.shuffle(arr)

常用基礎運算方法

如果python代碼中有很多涉及數學運算的操作,使用numpy是一種很好的提高運算效率的方法。

import numpy as np

np.sum()           # 計算矩陣元素的和
np.mean()          # 計算平均值
np.e               # 自然數e
np.pi              # 自然數π
np.abs()           # 計算絕對值,可以是數組
np.std(li)         # 計算標准差
np.var()           # 計算方差
np.max()           # 計算最大值
np.min()           # 計算最小值
np.cov(a,b)        # 計算協方差,得到矩陣,去[0,1]或[1,0]位置的為協方差
np.alen(a)         # 計算矩陣的長度,多維矩陣計算第一列的長度,即列數
np.argmax()        # 返回最大索引下標值
np.argmin()        # 返回最小索引下標值
np.ceil():         # 向上最接近的整數,參數是 number 或 array
np.floor():        # 向下最接近的整數,參數是 number 或 array
np.rint():         # 四舍五入,參數是 number 或 array
np.isnan():        # 判斷元素是否為 NaN(Not a Number),參數是 number 或 array,返回布爾矩陣
np.multiply(arr1, arr2):  # 對應元素相乘,參數是 number 或 array
np.divide(arr1, arr2):  # 元素相除,參數是 number 或 array
np.where(condition, x, y): # 三元運算符,x if condition else y
np.any():          # 至少有一個元素滿足指定條件,返回True
np.all()           # 所有的元素滿足指定條件,返回True

np.unique()        # 去除重復值並返回上升的排序結果

v = np.who({'aaa':arr1}) # 打印arr的相關屬性

矢量的加減乘

arr1 = np.random.randint(0,10,size=(3,4))
print(arr1*arr1) # 相對應元素相乘
print(arr1+arr1) # 對應元素相加
print(arr1-arr1) # 對應元素相減

布爾判斷

arr1 = np.random.randint(0,10,size=(2,3))
print(arr1 < 5)

[[False False False]
 [False  True False]]

矩陣轉換

# 多維使用數字表示維數,0,1,2,3代表四維
arr = np.random.rand(2,3)    # 2x3 數組
print(arr.transpose()) # 轉換為 3x2 數組,默認規則行列交換
arr.transpose((3,2,1,0)) # 行和列交換
arr1 = arr.T # 行列交換

# 從原來矩陣按規則產生新矩陣
np.take()
>>> a = [4, 3, 5, 7, 6, 8]
>>> indices = [0, 1, 4]
>>> np.take(a, indices)
array([4, 3, 6])
>>> np.take(a, [[0, 1], [2, 3]])
    array([[4, 3],
           [5, 7]])

# 在不改變數據的情況下改變矩陣形狀
np.reshape()
>>> np.reshape(a, (2, 3))
    array([[0, 1, 2],
           [3, 4, 5]])

# 數據復制
np.repeat()
>>> np.repeat(3, 4)
    array([3, 3, 3, 3])

讀取數據文件

從txt文件中加載矩陣數據。

data_array = np.loadtxt(filename,  # 文件名
                        delimiter=',',  # 分隔符
                        dtype=int,  # 數據類型,指的是生成的矩陣的數據類型
                        usecols=(0,1))  # 指定讀取的列號

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM