猿創征文|【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初級學習者
- 專欄計劃:接下來會逐步發布跨入人工智能的系列博文,敬請期待
- Python零基礎快速入門系列
- Python數據科學系列
- 人工智能開發環境搭建系列
- 機器學習系列
- 物體檢測快速入門系列
- 自動駕駛物體檢測系列
- …
智能推薦
【數據科學系列】基于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對象...
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 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...