NumPy 和 sklearn入門

      網友投稿 981 2025-04-04

      Numpy 和 scikit-learn 都是python常用的第三方庫。Numpy庫可以用來存儲和處理大型矩陣,并且在一定程度上彌補了python在運算效率上的不足,正是因為numpy的存在使得python成為數值計算領域的一大利器;sklearn是python著名的機器學習庫,它其中封裝了大量的機器學習算法,內置了大量的公開數據集,并且擁有完善的文檔,因此成為目前最受歡迎的機器學習學習與實踐的工具。


      1. NumPy庫

      首先導入Numpy庫

      import numpy as np

      1.1 numpy.array 與 list

      a = [1,2,3,4,5,6] # python內置數組結構

      b = np.array(a) # numpy數組結構

      python有內置數組結構(list),我們為什么還要使用numpy的數組結構呢?為了回答這個問題,我們先來看看python內置的數組結構有什么樣的特點。我們在使用list的時候會發現,list數組中保存的數據類型是不用相同的,可以是字符串、可以是整型數據、甚至可以是個類實例。這種存儲方式很使用,為我們使用帶來了很多遍歷,但是它也承擔了消耗大量內存的缺陷或不足。為什么這么說呢?實際上list數組中的每個元素的存儲都需要1個指針和1個數據,也就是說list中保存的其實是數據的存放地址(指針),它比原生態的數組多了一個存放指針的內存消耗。因此,當我們想去減少內存消耗時,不妨將list替換成np.array,這樣會節省不少的空間,并且Numpy數組是執行更快數值計算的優秀容器。

      1.2 numpy常用操作

      np.asarray([1,2,3])

      np.array([1,2,3], [4,5,6]) # 創建多維數組

      np.zeros((3, 2)) # 3行2列 全0矩陣

      np.ones((3, 2)) #全1矩陣

      np.full((3, 2), 5) # 3行2列全部填充5

      np.array 和 np.asarray 的區別:

      def asarray(a, dtype=None, order=None):

      return array(a, dtype, copy=False, order=order)

      可見,它們區別主要在于:?array會復制出一個新的對象,占用一份新的內存空間,而asarray不會執行這一操作。array類似深拷貝,array類似淺拷貝。

      基礎計算

      arr1 = np.array([[1,2,3], [4,5,6]]) arr2 = np.array([[6,5], [4,3], [2,1]])# 查看arr維度

      print(arr1.shape) # (2, 3)#切片

      np.array([1,2,3,4,5,6])[:3] #array([1,2,3])

      arr1[0:2,0:2] # 二維切片#乘法

      np.array([1,2,3]) * np.array([2,3,4]) # 對應元素相乘 array([2,6, ?12])

      arr1.dot(b) # 矩陣乘法#矩陣求和

      np.sum(arr1) # 所有元素之和 21

      np.sum(arr1, axis=0) #列求和 array([5, 7, 9])

      np.sum(arr1, axis=1) # 行求和 array([ 6, 15])# 最大最小

      np.max(arr1, axis=0/1) np.min(a, axis=0/1)

      進階計算

      arr = np.array([[1,2], [3,4], [5,6]])#布爾型數組訪問方式

      print((arr>2)) ? ?""" ? ??[[False False] ? ? [ True ?True] ? ? [ True ?True]] ? ?"""

      print(arr[arr>2]) # [3 4 5 6]#修改形狀

      arr.reshape(2,3) ? ?""" ? ? ? ?array([[1, 2, 3], ? ? ? [4, 5, 6]]) ? ?"""

      arr.flatten() # 攤平 array([1, 2, 3, 4, 5, 6])arr.T # 轉置

      2. sklearn庫

      若你想快速使用sklearn,我的另一篇博客應該可以滿足您的需求,點擊跳轉:《ML神器:sklearn的快速使用》

      sklearn是python的重要機器學習庫,其中封裝了大量的機器學習算法,如:分類、回歸、降維以及聚類;還包含了監督學習、非監督學習、數據變換三大模塊。sklearn擁有完善的文檔,使得它具有了上手容易的優勢;并它內置了大量的數據集,節省了獲取和整理數據集的時間。因而,使其成為了廣泛應用的重要的機器學習庫。下面簡單介紹一下sklearn下的常用方法。

      監督學習

      sklearn.neighbors #近鄰算法

      sklearn.svm #支持向量機

      sklearn.kernel_ridge #核-嶺回歸

      sklearn.discriminant_analysis #判別分析

      sklearn.linear_model #廣義線性模型

      sklearn.ensemble #集成學習

      NumPy 和 sklearn入門

      sklearn.tree #決策樹

      sklearn.naive_bayes #樸素貝葉斯

      sklearn.cross_decomposition #交叉分解

      sklearn.gaussian_process #高斯過程

      sklearn.neural_network #神經網絡

      sklearn.calibration #概率校準

      sklearn.isotonic #保守回歸

      sklearn.feature_selection #特征選擇

      sklearn.multiclass #多類多標簽算法

      以上的每個模型都包含多個算法,在調用時直接import即可,譬如:

      from sklearn.linear_model import LogisticRefression lr_model = LogisticRegression()

      無監督學習

      sklearn.decomposition #矩陣因子分解

      sklearn.cluster # 聚類

      sklearn.manifold # 流形學習

      sklearn.mixture # 高斯混合模型

      sklearn.neural_network # 無監督神經網絡

      sklearn.covariance # 協方差估計

      數據變換

      sklearn.feature_extraction # 特征提取

      sklearn.feature_selection # 特征選擇

      sklearn.preprocessing # 預處理

      sklearn.random_projection # 隨機投影

      sklearn.kernel_approximation # 核逼近

      數據集

      此外,sklearn還有統一的API接口,我們通常可以通過使用完全相同的接口來實現不同的機器學習算法,一般實現流程:

      step1. 數據加載和預處理

      step2. 定義分類器, 比如:?lr_model = LogisticRegression()

      step3. 使用訓練集訓練模型 :?lr_model.fit(X,Y)

      step4. 使用訓練好的模型進行預測:?y_pred = lr_model.predict(X_test)

      step5. 對模型進行性能評估:lr_model.score(X_test, y_test)

      常見命令:

      1. 數據集分割

      # 作用:將數據集劃分為 訓練集和測試集# 格式:train_test_split(*arrays, **options)

      from sklearn.mode_selection import train_test_split X, y = np.arange(10).reshape((5, 2)), range(5) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)"""

      參數

      ---

      arrays:樣本數組,包含特征向量和標簽

      test_size:

      float-獲得多大比重的測試樣本 (默認:0.25)

      int - 獲得多少個測試樣本

      train_size: 同test_size

      random_state:

      int - 隨機種子(種子固定,實驗可復現)

      shuffle - 是否在分割之前對數據進行洗牌(默認True)

      返回

      ---

      分割后的列表,長度=2*len(arrays),

      (train-test split)"""

      趕緊關注吧!

      Numpy 機器學習

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:有誰幫我調下目錄這事,方便的加個微信。幫我遠程一下,急
      下一篇:excel表格加框線的方法步驟圖解(excel表格怎么添加框線)
      相關文章
      亚洲色www永久网站| 激情综合亚洲色婷婷五月| 九月婷婷亚洲综合在线| 亚洲粉嫩美白在线| 亚洲av无码国产综合专区| 亚洲国产精品xo在线观看| 亚洲美女视频免费| 亚洲图片校园春色| 亚洲国产精品综合久久网各| 亚洲熟妇无码久久精品| 亚洲精品高清国产麻豆专区| 亚洲高清无在码在线无弹窗| 亚洲色成人网一二三区| 亚洲福利一区二区| 亚洲人成电影院在线观看| 亚洲人成免费电影| 国产婷婷综合丁香亚洲欧洲| 中文无码亚洲精品字幕| 亚洲午夜无码久久久久软件| 亚洲成av人在线观看网站| 亚洲国产成人精品无码区花野真一| 最新亚洲卡一卡二卡三新区| 亚洲日本中文字幕天天更新| 亚洲AV无码片一区二区三区| 亚洲AV日韩AV永久无码色欲| 四虎亚洲国产成人久久精品| 亚洲午夜爱爱香蕉片| 国产亚洲人成A在线V网站| 亚洲男人的天堂在线播放| 蜜芽亚洲av无码精品色午夜| 亚洲首页在线观看| 亚洲乱码在线视频| 亚洲精品无码av中文字幕| 亚洲av综合日韩| 国产成人亚洲影院在线观看| 自拍偷区亚洲国内自拍| 91亚洲精品自在在线观看| 最新国产精品亚洲| 亚洲Av无码乱码在线播放| 中文字幕精品亚洲无线码一区 | 亚洲色偷偷偷综合网|