這是機(jī)器未來的第44篇文章
原文首發(fā)地址:https://blog.csdn.net/RobotFutures/article/details/126615267
1. 概述
本文以鳶尾花的數(shù)據(jù)預(yù)處理為例,描述了科學(xué)計(jì)算在機(jī)器學(xué)習(xí)使用的示例。
2. 加載數(shù)據(jù)集
以鳶尾花數(shù)據(jù)集為例。
鳶尾花數(shù)據(jù)集有4個(gè)特征,1個(gè)標(biāo)簽,特征為sepal_length,sepal_width,petal_length,petal_width,分別為花萼長度、花萼寬度,花瓣長度、花瓣寬度,標(biāo)簽為鳶尾花的分類,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列數(shù)據(jù)作為特征數(shù)據(jù)
X_data = data[:, :4] # 或者 X_data = data[:, :-1]
# 使用切片提取最后1列數(shù)據(jù)作為標(biāo)簽數(shù)據(jù)
y_data = data[:, -1]
data.shape, X_data.shape, y_data.shape
((150, 5), (150, 4), (150,))
3. 查看數(shù)據(jù)特征
3.1 查看首5行數(shù)據(jù)
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 查看數(shù)據(jù)集每個(gè)特征的最大值
# axis = 0指定X軸,取每列的最大值
np.max(X_data, axis=0)
array([7.9, 4.4, 6.9, 2.5])
上面的取值就是每個(gè)特征的最大值,數(shù)據(jù)集的花萼長度最大值為7.9,花萼寬度最大值為4.4,花瓣長度最大值為6.9,花瓣寬度最大值為2.5
如果去掉軸axis參數(shù),就是取數(shù)據(jù)集所有數(shù)據(jù)中的最大值,會(huì)綜合所有列一起的最大值。
np.max(X_data)
7.9
3.3 查看每個(gè)特征的最小值
np.min(X_data, axis=0)
array([4.3, 2. , 1. , 0.1])
上面的取值就是每個(gè)特征的最小值,數(shù)據(jù)集的花萼長度最小值為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 查看特征百分位數(shù)
百分位數(shù)是統(tǒng)計(jì)中使用的度量,表示小于這個(gè)值的觀察值樣本數(shù)量占總體的百分比。
# 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 查看特征數(shù)據(jù)分布波動(dòng)
np.std(X_data, axis=0)
array([0.82530129, 0.43441097, 1.75940407, 0.75969263])
從標(biāo)準(zhǔn)差可以看到特征花萼寬度標(biāo)準(zhǔn)差為0.43441097數(shù)據(jù)波動(dòng)最小,花瓣長度標(biāo)準(zhǔn)差數(shù)據(jù)為1.75940407,數(shù)據(jù)波動(dòng)最大。
3.8 查看特征樣本數(shù)量
X_data.shape
(150, 4)
可以看到樣本數(shù)量為150,每個(gè)樣本4個(gè)特征
3.9 查看標(biāo)簽數(shù)據(jù)分布
通過np.unique分別獲得唯一ID和對(duì)應(yīng)的樣本數(shù)量,然后通過zip、dict轉(zhuǎn)換為字典。
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}
可以看到標(biāo)簽是均衡的,每個(gè)分類的樣本數(shù)均是50.
4. 其它常用的科學(xué)函數(shù)
函數(shù) | 說明 | 示例 |
---|---|---|
np.sum | 求累加 | np.sum((y_pred - y_data)**2) |
np.exp | 以自然常數(shù)e為底的指數(shù)函數(shù) | 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 | 求絕對(duì)值 | np.abs([1, -1, -7.9, 6]) |
np.argmax | 求最大值的位置索引 | np.argmax(X_data, axis=0) |
np.argmin | 求最小值的位置索引 | np.argmin(X_data, axis=0) |
… |
5. 總結(jié)
以上就是numpy科學(xué)函數(shù)的簡單介紹,更多api在將來的使用中再描述。
寫在末尾:文章來源:http://www.zghlxwxcb.cn/news/detail-407077.html
- 博客簡介:專注AIoT領(lǐng)域,追逐未來時(shí)代的脈搏,記錄路途中的技術(shù)成長!
- 專欄簡介:從0到1掌握數(shù)據(jù)科學(xué)常用庫Numpy、Matploblib、Pandas。
- 面向人群:AI初級(jí)學(xué)習(xí)者
- 專欄計(jì)劃:接下來會(huì)逐步發(fā)布跨入人工智能的系列博文,敬請(qǐng)期待
- Python零基礎(chǔ)快速入門系列
- Python數(shù)據(jù)科學(xué)系列
- 人工智能開發(fā)環(huán)境搭建系列
- 機(jī)器學(xué)習(xí)系列
- 物體檢測(cè)快速入門系列
- 自動(dòng)駕駛物體檢測(cè)系列
- …
文章來源地址http://www.zghlxwxcb.cn/news/detail-407077.html
到了這里,關(guān)于猿創(chuàng)征文|【Python數(shù)據(jù)科學(xué)快速入門系列 | 05】常用科學(xué)計(jì)算函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!