• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 猿創征文|【Python數據科學快速入門系列 | 05】常用科學計算函數

    標簽: Python數據科學快速入門系列  python  機器學習  人工智能  numpy

    這是機器未來的第44篇文章

    原文首發地址:https://blog.csdn.net/RobotFutures/article/details/126615267

    1. 概述

    本文以鳶尾花的數據預處理為例,描述了科學計算在機器學習使用的示例。

    2. 加載數據集

    以鳶尾花數據集為例。
    鳶尾花數據集有4個特征,1個標簽,特征為sepal_length,sepal_width,petal_length,petal_width,分別為花萼長度、花萼寬度,花瓣長度、花瓣寬度,標簽為鳶尾花的分類,0,1,2分別代表山鳶尾(Setosa)、變色鳶尾(Versicolor)、維吉尼亞鳶尾(Virginical)

    import numpy as np
    
    data = []
    with open(file='iris.txt',mode='r') as f:
        f.readline()
        while True:
            line = f.readline()
            if line:
                data.append(line.strip().split(','))
            else:
                break
    
    data = np.array(data,dtype=float)
    
    # 使用切片提取前4列數據作為特征數據
    X_data = data[:, :4]  # 或者 X_data = data[:, :-1]
    
    # 使用切片提取最后1列數據作為標簽數據
    y_data = data[:, -1]
    
    data.shape, X_data.shape, y_data.shape
    
    ((150, 5), (150, 4), (150,))
    

    3. 查看數據特征

    3.1 查看首5行數據

    X_data[0:5], y_data[0:5]
    
    (array([[5.1, 3.5, 1.4, 0.2],
            [4.9, 3. , 1.4, 0.2],
            [4.7, 3.2, 1.3, 0.2],
            [4.6, 3.1, 1.5, 0.2],
            [5. , 3.6, 1.4, 0.2]]),
     array([0., 0., 0., 0., 0.]))
    

    3.2 查看數據集每個特征的最大值

    # axis = 0指定X軸,取每列的最大值
    np.max(X_data, axis=0)
    
    array([7.9, 4.4, 6.9, 2.5])
    

    上面的取值就是每個特征的最大值,數據集的花萼長度最大值為7.9,花萼寬度最大值為4.4,花瓣長度最大值為6.9,花瓣寬度最大值為2.5

    如果去掉軸axis參數,就是取數據集所有數據中的最大值,會綜合所有列一起的最大值。

    np.max(X_data)
    
    7.9
    

    3.3 查看每個特征的最小值

    np.min(X_data, axis=0)
    
    array([4.3, 2. , 1. , 0.1])
    

    上面的取值就是每個特征的最小值,數據集的花萼長度最小值為4.3,花萼寬度最小值為2,花瓣長度最小值為1,花瓣寬度最小值為0.1

    3.4 查看特征均值

    np.mean(X_data, axis=0)
    
    array([5.84333333, 3.05733333, 3.758     , 1.19933333])
    

    3.5 查看特征百分位數

    百分位數是統計中使用的度量,表示小于這個值的觀察值樣本數量占總體的百分比。

    # 25%
    np.percentile(X_data, 0.25, axis=0)
    
    array([4.33725, 2.0745 , 1.03725, 0.1    ])
    
    # 50%
    np.percentile(X_data, 0.50, axis=0)
    
    array([4.3745, 2.149 , 1.0745, 0.1   ])
    
    # 75%
    np.percentile(X_data, 0.75, axis=0)
    
    array([4.4    , 2.2    , 1.11175, 0.1    ])
    

    3.6 查看特征數據分布波動

    np.std(X_data, axis=0)
    
    array([0.82530129, 0.43441097, 1.75940407, 0.75969263])
    

    從標準差可以看到特征花萼寬度標準差為0.43441097數據波動最小,花瓣長度標準差數據為1.75940407,數據波動最大。

    3.8 查看特征樣本數量

    X_data.shape
    
    (150, 4)
    

    可以看到樣本數量為150,每個樣本4個特征

    3.9 查看標簽數據分布

    通過np.unique分別獲得唯一ID和對應的樣本數量,然后通過zip、dict轉換為字典。

    unique, count = np.unique(y_data, return_counts=True)
    label_count = dict(zip(unique, count))
    label_count
    
    {0.0: 50, 1.0: 50, 2.0: 50}
    

    可以看到標簽是均衡的,每個分類的樣本數均是50.

    4. 其它常用的科學函數

    函數說明示例
    np.sum求累加np.sum((y_pred - y_data)**2)
    np.exp以自然常數e為底的指數函數np.exp**2
    np.var求方差np.var(X_data, axis=0)
    np.round四舍五入np.round(np.var(X_data, axis=0), decimals=2)
    np.square求平方np.square(X_data)
    np.abs求絕對值np.abs([1, -1, -7.9, 6])
    np.argmax求最大值的位置索引np.argmax(X_data, axis=0)
    np.argmin求最小值的位置索引np.argmin(X_data, axis=0)

    5. 總結

    以上就是numpy科學函數的簡單介紹,更多api在將來的使用中再描述。

    寫在末尾:

    • 博客簡介:專注AIoT領域,追逐未來時代的脈搏,記錄路途中的技術成長!
    • 專欄簡介:從0到1掌握數據科學常用庫Numpy、Matploblib、Pandas。
    • 面向人群:AI初級學習者
    • 專欄計劃:接下來會逐步發布跨入人工智能的系列博文,敬請期待

    版權聲明:本文為RobotFutures原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/RobotFutures/article/details/126615267

    智能推薦

    【數據科學系列】基于Python的Web應用框架Dash-Dash HTML Components快速入門

    Dash HTML Components Dash是一個Web應用程序框架,提供圍繞HTML,CSS和JavaScript的純Python抽象。 用戶可以使用Python結構和dash-html-components庫來構建布局,而不是編寫HTML或使用HTML模板引擎 。 樣例1:簡單的HTML結構 使用Python結構和dash-html-components庫替代HTML或HTML模板引擎 ...

    python科學計算——pandas

    寫在前面 pandas在數據處理分析上往往占據主要地位,其中實現了很多功能函數,可以使數據分析更加方便快捷,這里只是pandas中比較基礎的總結,更加復雜高級的用法還需要參考官方文檔。pandas中兩個常用的對象是Series和DataFrame。 Series對象 series是pandas中最基本的對象,并定義了和numpy.ndarray的接口,可以用numpy的函數直接操作series對象...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    猜你喜歡

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    精品国产乱码久久久久久蜜桃不卡