Python 常用相關庫介紹
# math庫做一些基本的運算工作
import math # 導入math庫
s1=math.sin(1) # sin(x)
s2=math.exp(2) # exp(x)
s3=math.pi # 內置圓周率
import math as m # 對庫取別名
m.cos(2) # cos(x)
from math import exp as ep # 從math中 只 導入 函數exp,取別名e
s4=ep(1)
# 獲取所有已經安裝的模塊名
# help("modules")
# Python 數據分析模塊 數據分析工具
#-------------------------------
# 常用的資料庫
# 1. Numpy : 提供數組支持,以及相應的高效的處理函數
# 2. Scipy : 提供矩陣支持,以及矩陣相關的數值計算模塊
# 3. Matplotlib : 強大的資料庫實話工具,作圖庫
# 4. Pandas : 強大,靈活的數據分析和探索工具
# 5. StatsModel : 統計建模和計量經濟學分析,包括描述性統計,統計模型和推斷
# 6. Scikit-Learn : 支持回歸,分類,聚類等機器學習庫
# 7. Keras : 深度學習庫,用於建立神經網路和深度學習模型
# 8. Gensim : 用來做文本主題模型的庫
# 9. Opencv : 設計視頻處理的庫
# 10.GMPY2 : 設計高精度運算
# 11.Pillow : 圖片處理庫
#--------------------------------------------------------
## 庫Numpy 介紹及基本操作 : 數組的操作更加精細 速度相比 列表更快,更高效
import numpy as np
a=np.array([2,0,1,5]) # 創建數組
print(a)
print(a[:3]) # 引用數組前3個元素
print(a.min()) # 計算a的最小值
print(a.sort()) # 將 a 進行排序操作 從小到大 直接修改數組a
b=np.array([[1,2,3],[4,5,6]]) # 二維數組
print(b)
print(b*b*b) #
# numpy學習網站 http://www.numpy.org/ http://reverland.org/python/2012/08/22/numpy/
#-----------------------------------------------------
## Scipy 提供了真正的矩陣計算,以及大量基於矩陣運算的對象和函數
# (最優化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理 和 圖像處理 常微分方程 其他工程計算 )
# 求解非線性方程組: 2x1-x2^2=1,x1^2-x2=2
from scipy.optimize import fsolve # 導入求解方程組的函數
def f(x):
x1=x[0]
x2=x[1]
return [2*x1-x2**2-1,x1**2-x2-2]
result=fsolve(f,[1,1]) # 輸入初始值 [1,1]
print(result)
# 數值積分
from scipy import integrate # 導入積分函數
def g(x):
return (1-x**2)**0.5
pi_2,err=integrate.quad(g,-1,-1) # 積分結果 及 誤差
print(pi_2*2) # 由微積分只是知道積分結果和圓周率pi的一半
# scipy 學習網站 http://www.scipy.org/ http://reverland.org/python/2012/08/24/scipy/
#------------------------------------------------------------------------------
## Matplotlib 提供數值可視化函數: 主要是二維圖像 , 還有簡單 三維圖
import numpy as np
import matplotlib.pyplot as plt # 導入 Matplotlib
x=np.linspace(0,10,1000)
y=np.sin(x)+1
z=np.cos(x**2)+1
plt.figure(figsize=(8,4)) # 設置圖形大小
plt.plot(x,y,label="$sin x +1$",color="red",linewidth=2) # 作圖,設置標籤,線條顏色,線條大小
plt.plot(x,z,"b--",label="$cos x^2 +1$",linewidth=2) # 作圖,設置標籤,線條顏色,線條大小
plt.xlabel("Time(s)") # x軸名稱
plt.ylabel("Volt") # y軸名稱
plt.title("A simple plot example") # 標題
plt.ylim(0,2.2) # 顯示Y軸值得範圍
plt.legend() # 顯示圖例
plt.show() # 顯示作圖結果
# plt.rcParams["font.sans-serif"]=["SimHei"] # 解決中文標籤顯示不正常問題
# plt.rcParams["axes.unicode_minus"]=False # 解決保存圖像是符號「-」顯示為方塊問題
# matplotlib庫 圖像庫 : http://matplotlib.org/gallery.html
# 學習網 : http://matplotlib.org/
# 案例 : http://reverland.org/python/2012/09/07/matplotlib-tutorial
#------------------------------------------------------------------------------pandas - 導致類似 matlab方式
# **** pandas **** 基本的數據結構: Series 序列 + DataFrame 二維數組
# 配合 xlrd 的 excel 讀取功能 + xlwd 的 excel 寫入功能
#-------------
# DataFrame 二維表 可以用 index 訪問,並且下表不限於數字
# 簡單例子
import pandas as pd
s=pd.Series([1,2,3],index=["a","b","c"]) # 創建序列
d=pd.DataFrame([[1,2,3],[4,5,6]],columns=["a","b","c"]) # 創建一個表
d2=pd.DataFrame(s) # 用已有的序列來創建表格
d.head
d.describe() # 基本統計結果
# 讀取excel文件
df=pd.read_excel("/Users/fengye/Desktop/python基礎知識學習/example.xlsx") # 創建 DataFrame
# 獲取數據
print(df["date"][3]) # 讀取方式 df[列名][行數] 獲取對應的元素
# df=pd.read_csv("") # 讀取csv文件
# 學習網: http://pandas.pydata.org/pandas-docs/stable/
# 案例網: http://jingyan.baidu.com/season/43456
#------------------------------------------------------------------------------StatsModels支持與pandas數據交互,類似 R 的操作
# StatModels 依賴於 Pandas
import numpy as np
# 學習網: http://statsmodels.sourceforge.net/stable/index.html
# 案例網: http://jingyan.baidu.com/season/43456 ??
#------------------------------------------------------------------------------Scikit-Learn 機器學習庫
#--提供了完善的機器學習工具( 依賴庫 NumPy Scipy Matplotlib )
#--知識內容
from sklearn.linear_model import LinearRegression # 導入線性回歸模型
model = LinearRegression() # 建立線性回歸模型
print(model) # 顯示函數 參數情況
# 模型函數
# 1. 所有模型都有的介面: model.fit() --訓練函數, 對有監督模型為:fit(X,y) vs 非監督模型 fit(X)
# 2. 監督模型提供的介面: model.fit(x_new) --預測新樣本
# model.predict_proba(x_new) --預測概率,僅對某些模型有用(比如 LR)
# model.score() 得分越高越好
# 3. 非監督學習模型: model.transform() 從數據中學到新的「基空間」
# model.fit_transform()從數據中學到新的基,並將這個數據按照這組基進行轉換
#
# 實例 鳶尾花數據案例
from sklearn import datasets # 導入數據集
iris=datasets.load_iris() # 載入數據
from sklearn import svm # 導入SVM模型
clf=svm.LinearSVC() # 建立線性SVM分類器
clf.fit(iris.data,iris.target) # 用數據進行訓練模型
clf.predict([[5.0,3.6,1.3,0.25]])# 利用訓練的模型參數來對新數據預測
clf.coef_ # 查看訓練好模型的參數
#--學習網站 http://scikit-learn.org/
#---------------------------------------------------------------深度學習庫 Keras
# 人工神經網路: 語言處理,圖像處理等領域
# 網站1: http://deeplearning.net/software/theano/install.html#install
# 網站2: https://github.com/fchollet/keras
# 網站3: http://radimrehurek.com/gensim/
#--------------------------------------------------------------- Gensim 文本處理,文本挖掘
# topic modelling for humans !
# 學習網站1 : http://radimrehurek.com/gensim/
# 學習網站2 : http://52nlp.cn
#---------------------------------------------------------------
TAG:Python |