2.1、常用環(huán)境
-
科學(xué)計(jì)算支持庫Numpy
專門設(shè)計(jì)用于科學(xué)計(jì)算的專業(yè)支持庫
機(jī)器學(xué)習(xí)庫 Scikit-learn
-
數(shù)據(jù)處理庫 Pandas
內(nèi)置許多排序,統(tǒng)計(jì)之類的實(shí)用功能
2.2、Python
Python是一種動(dòng)態(tài)的高級編程語言,Python代碼是通過解釋器解釋執(zhí)行。Python數(shù)據(jù)類型不用事先聲明,語法更為靈活多變,代碼看起來也更簡潔,高效快速是Python引以為傲的特點(diǎn)。
2.2.1、基本用法
Python庫安裝工具Pip和Conda。如果成功安裝Python后,就能在命令行中直接使用Pip命令了,而Conda則需要額外進(jìn)行安裝才能使用,Conda功能更為強(qiáng)大
pip install 庫名
# 使用國內(nèi)源加速下載
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 庫名
# 或者
conda 庫名
使用庫方面,Python也和其他編程語言一樣,需要先導(dǎo)入再使用
import 庫名
# 或者
import 庫名 as 別名
# 使用庫中的類
from 庫名 import 類名
2.3、Numpy簡介
Numpy是Python語言的科學(xué)計(jì)算支持庫,提供了線性代數(shù),傅里葉變換等非常有用的數(shù)學(xué)工具。
pip install -U numpy
Numpy擁有強(qiáng)大的科學(xué)計(jì)算功能,Array數(shù)據(jù)類型是Numpy的核心數(shù)據(jù)結(jié)構(gòu),與Python的List類型相似,但功能強(qiáng)大的多。Numpy相關(guān)功能都是圍繞著Array類型建設(shè)的。
# 使用Numpy包只需要導(dǎo)入即可,業(yè)界習(xí)慣用np作為它的別名
import numpy as np
| 方法名稱 | 類別 | 功能說明 |
|---|---|---|
| array | 數(shù)據(jù)創(chuàng)建 | 創(chuàng)建Array類型數(shù)據(jù) |
| zeros | 數(shù)據(jù)創(chuàng)建 | 創(chuàng)建值為0的Array類型數(shù)據(jù) |
| ones | 數(shù)據(jù)創(chuàng)建 | 創(chuàng)建值為1的Array類型數(shù)據(jù) |
| eye | 數(shù)據(jù)創(chuàng)建 | 創(chuàng)建單位矩陣 |
| arange | 數(shù)據(jù)創(chuàng)建 | 類似內(nèi)置函數(shù)range,生成等差數(shù)值 |
| linspace | 數(shù)據(jù)創(chuàng)建 | 生成可指定是否包含終值的等差數(shù)值 |
| random.rand | 數(shù)據(jù)創(chuàng)建 | 隨機(jī)生成數(shù)值 |
| T | 數(shù)據(jù)創(chuàng)建 | 轉(zhuǎn)置操作 |
| reshape | 數(shù)據(jù)操作 | 不改變原數(shù)據(jù)的維度變換 |
| resize | 數(shù)據(jù)操作 | 修改原數(shù)據(jù)的維度變換 |
| mean | 統(tǒng)計(jì)操作 | 取均值 |
| sum | 統(tǒng)計(jì)操作 | 求和 |
| max | 統(tǒng)計(jì)操作 | 取最大值 |
| min | 統(tǒng)計(jì)操作 | 取最小值 |
| var | 統(tǒng)計(jì)操作 | 求方差 |
| std | 統(tǒng)計(jì)操作 | 求標(biāo)準(zhǔn)差 |
| corrcoef | 統(tǒng)計(jì)操作 | 計(jì)算相關(guān)系數(shù) |
| append | 數(shù)據(jù)操作 | 新增 |
| insert | 數(shù)據(jù)操作 | 插入 |
| delete | 數(shù)據(jù)操作 | 刪除 |
| concatenate | 數(shù)據(jù)操作 | 按行(列)連接數(shù)據(jù)表 |
| add | 數(shù)學(xué)運(yùn)算 | 標(biāo)(向)量加法 |
| subtract | 數(shù)學(xué)運(yùn)算 | 標(biāo)(向)量減法 |
| multiply | 數(shù)學(xué)運(yùn)算 | 標(biāo)(向)量乘法 |
| divide | 數(shù)學(xué)運(yùn)算 | 標(biāo)(向)量除法 |
| exp | 數(shù)學(xué)運(yùn)算 | 以e為底的指數(shù)運(yùn)算 |
| log | 數(shù)學(xué)運(yùn)算 | 以e為底的對數(shù)運(yùn)算 |
| dot | 數(shù)學(xué)運(yùn)算 | 點(diǎn)乘 |
2.3、Scikit-Learn
Scikit-learn庫包含了常見的機(jī)器學(xué)習(xí)算法,而且還在不斷更新。
scikit-learn庫對機(jī)器學(xué)習(xí)算法進(jìn)行封裝,使用過程非常簡單,只要根據(jù)格式填入數(shù)據(jù)即可,不涉及額外的數(shù)學(xué)運(yùn)算操作。
pip install -U scikit-learn
# 使用scikit-learn
import sklearn
調(diào)用機(jī)器學(xué)習(xí)算法也非常簡單,Scikit-learn庫已經(jīng)將算法按模型分類,查找起來非常方便。如線性回歸算法可以從線性模型中找到
from sklearn import linear-model
model = linear_model.LinearRegression()
Logistic回歸算法也是依據(jù)線性模型
from sklearn.linear_model imort LogisticRegression
model = linear_model.logisticRegression()
類似的還有基于近鄰模型的KNN算法
生成模型后,一般使用fit方法給模型"喂"數(shù)據(jù)進(jìn)行訓(xùn)練。完成訓(xùn)練的模型可以使用predict方法進(jìn)行預(yù)測。
2.4、Pandas簡介
Pandas是Python語言中知名的數(shù)據(jù)處理庫。但是從生產(chǎn)環(huán)境上得到的數(shù)據(jù)需要首先進(jìn)行數(shù)據(jù)清洗工作,最常見的如填充丟失字段值。數(shù)據(jù)清洗工作一般由Pandas來完成,特征工程也可通過Pandas完成。
2.4.1、安裝
pip install -U pandas
2.4.2、Pandas基本用法
Pandas具有兩個(gè)核心的數(shù)據(jù)類型,即Series和DataFrame
-
Series
一維數(shù)據(jù),可以認(rèn)為是一個(gè)統(tǒng)計(jì)功能增強(qiáng)版的List功能
-
DataFrame
多維數(shù)據(jù),有多個(gè)Series組成
業(yè)界習(xí)慣在導(dǎo)入時(shí),使用'pd'作為他的別名
import pandas as pd
| 方法名稱 | 類別 | 功能說明 |
|---|---|---|
| read_csv | 讀取數(shù)據(jù) | 從CSV格式文件中讀取數(shù)據(jù) |
| read_excel | 讀取數(shù)據(jù) | 從電子表格中讀取數(shù)據(jù) |
| read_json | 讀取數(shù)據(jù) | 從json格式中讀取數(shù)據(jù) |
| read_clipboard | 讀取數(shù)據(jù) | 從剪切板讀取數(shù)據(jù) |
| to_csv | 寫入數(shù)據(jù) | 將數(shù)據(jù)寫入csv格式文件 |
| to_excel | 寫入數(shù)據(jù) | 將數(shù)據(jù)寫入電子表格 |
| to_json | 寫入數(shù)據(jù) | 將數(shù)據(jù)寫入json表格 |
| to_clipboard | 寫入數(shù)據(jù) | 將數(shù)據(jù)寫入粘貼板 |
| Series | 創(chuàng)建數(shù)據(jù) | 創(chuàng)建Series類型數(shù)據(jù) |
| DataFrame | 創(chuàng)建數(shù)據(jù) | 創(chuàng)建DataFrame類型數(shù)據(jù) |
| head | 信息查看 | 從頭開始查看N位數(shù)據(jù) |
| tail | 信息查看 | 從末尾開始查看N位數(shù)據(jù) |
| shape | 信息查看 | 行列數(shù)信息 |
| dropna | 數(shù)據(jù)操作 | 刪除空值 |
| fillna | 數(shù)據(jù)操作 | 填充空值 |
| sort_values | 數(shù)據(jù)操作 | 正(逆)序排序 |
| append | 數(shù)據(jù)操作 | 橫向(按行)連接兩個(gè)數(shù)據(jù)表 |
| concat | 數(shù)據(jù)操作 | 縱向(按列)連接兩個(gè)數(shù)據(jù)表 |
| value_counts | 統(tǒng)計(jì)操作 | 值計(jì)數(shù) |
| describe | 統(tǒng)計(jì)操作 | 總體概況信息 |
| info | 統(tǒng)計(jì)操作 | 數(shù)據(jù)類型統(tǒng)計(jì) |
| mean | 統(tǒng)計(jì)操作 | 取均值 |
| corr | 統(tǒng)計(jì)操作 | 計(jì)算相關(guān)系數(shù) |
| count | 統(tǒng)計(jì)操作 | 非空值計(jì)數(shù) |
| max | 統(tǒng)計(jì)操作 | 取最大值 |
| min | 統(tǒng)計(jì)操作 | 取最小值 |
| median | 統(tǒng)計(jì)操作 | 計(jì)算中位數(shù) |
| std | 統(tǒng)計(jì)操作 | 計(jì)算標(biāo)準(zhǔn)差 |