程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

1、Python量化交易-三劍客之Numpy

編輯:Python

目錄

  • 一、環境安裝
    • 1 - anaconda安裝
    • 2 - jupyter介紹
    • 3 - cell簡介
    • 4 - cell快捷鍵
  • 二、numpy的三種創建方式
    • 1 - np.array創建numpy
    • 2 - plt.imread創建numpy
    • 3 - 使用np的routines函數創建
  • 三、numpy常用屬性
  • 四、numpy操作
    • 1 - numpy索引操作
    • 2 - numpy切片操作
    • 3 - reshape變形
    • 4 - 級聯操作
    • 5 - 聚合操作
    • 6 - 數學函數
    • 7 - 統計函數
  • 五、numpy矩陣
  • 六、jupyter筆記

一、環境安裝

1 - anaconda安裝

  • anaconda簡介:anaconda是一個集成環境 —— 集成好了數據分析和機器學習中所需要的全部環境
  • anaconda官網:www.anaconda.com
  • anaconda下載:清華大學鏡像-anaconda,拖到最底下,選擇“Anaconda3-5.3.1-Windows-x86_64.exe”
  • anaconda安裝:anaconda安裝目錄不可以有中文和特殊符號;一路Next,勾選“Add Anaconda…”和“Register Anaconda…”
  • anaconda測試安裝是否成功:打開cmd窗口,錄入jupyter notebook指令,如果沒有顯示找不到命令且沒有報錯即可表示安裝成功

2 - jupyter介紹

  • 什麼是jupyter:jupyter就是anaconda提供的一個基於浏覽器的可視化開發工具
  • jupyter啟動:啟動終端,然後先定位到指定目錄(在哪個目錄啟動,到時候jupyter的工程就在哪個目錄下);在終端中錄入:jupyter notebook,按下回車
  • 新建python3:python3是anaconda中的源文件
  • anaconda文件重名名
  • 返回上一級可以看到多了一個 aaaa.ipynb的文件,ipynb指的是基於anaconda的一個文件

3 - cell簡介

  • 什麼是cell
  • cell有兩種模式:code模式、markdown模式
  • cell模式的切換

4 - cell快捷鍵

  • 添加cell:a=在當前cell上方添加一個cell,b=在當前cell下方添加一個cell
  • 刪除cell:x
  • cell模式修改:m=markdown模式,y=code模式
  • cell執行:shift+enter
  • tab:自動補全
  • 打開幫助文檔:shift+tab

二、numpy的三種創建方式

  • 數據分析三劍客
    • numpy
    • pandas(重點)
    • matplotlib
  • 什麼是numpy:NumPy(Numerical Python) 是 Python 語言中做科學計算的基礎庫。重在於數值計算,也是大部分Python科學計算庫的基礎,多用於在大型、多維數組上執行的數值運算

1 - np.array創建numpy

  • np.array()創建numpy

    • param1:object —— 數據源
    • param2:dttype —— 數組元素的類型,默認值初始數據源傳入的類型是什麼就是什麼
  • 數組和列表的區別是什麼

    • 數組中存儲的數據元素類型必須是統一類型
    • 未指定dttype時,根據元素類型優先級來確定數組元素類型 —— 字符串 > 浮點型 > 整數

2 - plt.imread創建numpy

  • 將外部的一張圖片讀取加載到numpy數組中,然後嘗試改變數組元素的數值,查看對原始圖片的影響
    • 這裡如果報錯,需要安裝pillow,cmd執行:pip install pillow

3 - 使用np的routines函數創建

  • np的routines函數
    • zero():填充0的數組
    • ones():填充1的數組
    • linespace()
    • arange()
    • random系列
  • np.ones
    • param1:shape —— 數組的維度 —— Shape of the new array, e.g., (2, 3) or 2
  • np.linspace:創建一維的等差數列數組
  • np.arange:創建一維等差數列
  • np.random.randint:創建隨機數組

三、numpy常用屬性

  • 屬性
    • shape:返回數組形狀
    • ndim:返回數組維度
    • size:返回數組元素個數
    • dtype:數組元素類型
    • type(arr):數組的數據類型

四、numpy操作

1 - numpy索引操作

  • numpy索引操作和列表同理

2 - numpy切片操作

  • 切片:行列切片
    • 切出前兩行數據
    • 切出前兩列數據
    • 切出前兩行的前兩列的數據
  • 切片:數組數據翻轉(倒置)
  • 原始圖片
  • 練習:將一張圖片上下左右進行翻轉操作
  • 練習:將圖片進行指定區域的裁剪

3 - reshape變形

4 - 級聯操作

  • 什麼是級聯操作:將多個numpy數組(維度必須相同)進行橫向或者縱向的拼接
  • axis軸向的理解:0 —— 列;1 —— 行

5 - 聚合操作

  • 常用聚合操作:沒有axis參數 —— 求所有;axis=0 —— 按列;axis=1 —— 按行
    • sum:求和
    • max:最大值
    • min:最小值
    • mean:平均值

6 - 數學函數

  • numpy標准三角函數:sin()、cos()、tan()
  • numpy.around(a, decimals):函數返回指定數字的四捨五入值
    • 參數a:數組
    • 參數decimals:捨入的小數位數;默認值為0;如果為負,整數將四捨五入到小數點左側的位置

7 - 統計函數

  • 常用統計函數
    • numpy.amin() 和 numpy.amax(),用於計算數組中的元素沿指定軸的最小、最大值
    • numpy.ptp():計算數組中元素最大值與最小值的差(最大值 - 最小值)
    • numpy.median() 函數用於計算數組 a 中元素的中位數(中值)
    • 標准差std():標准差是一組數據平均值分散程度的一種度量。
      • 公式:std = sqrt(mean((x - x.mean())**2))
      • 如果數組是 [1,2,3,4],則其平均值為 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],並且其平均值的平方根除以 4,即 sqrt(5/4) ,結果為 1.1180339887498949。
    • 方差var():統計中的方差(樣本方差)是每個樣本值與全體樣本值的平均數之差的平方值的平均數,即 mean((x - x.mean())** 2)。換句話說,標准差是方差的平方根

五、numpy矩陣

  • 線性代數基於矩陣的推導:https://www.cnblogs.com/alantu2018/p/8528299.html
  • numpy矩陣
    • NumPy 中包含了一個矩陣庫 numpy.matlib,該模塊中的函數返回的是一個矩陣,而不是 ndarray 對象。一個 的矩陣是一個由行(row)列(column)元素排列成的矩形陣列
    • numpy.matlib.identity() 函數返回給定大小的單位矩陣。單位矩陣是個方陣,從左上角到右下角的對角線(稱為主對角線)上的元素均為 1,除此以外全都為 0

  • numpy矩陣相乘:numpy.dot(a, b, out=None)
    • a:ndarray數組
    • b:ndarray數組
  • 矩陣的加法、減法、乘法
  • 矩陣相乘:第一個矩陣第一行的每個數字(2和1),各自乘以第二個矩陣第一列對應位置的數字(1和1),然後將乘積相加( 2 x 1 + 1 x 1),得到結果矩陣左上角的那個值3。也就是說,結果矩陣第m行與第n列交叉位置的那個值,等於第一個矩陣第m行與第二個矩陣第n列,對應位置的每個值的乘積之和


六、jupyter筆記

點擊下載jupyter筆記


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved