總結Anaconda、jupyter與python基礎
來自專欄 數據分析入門
之前忙著提交論文盲審與兩地求職,很累。想抽出大片時間時,總是被各種外界因素干擾,我需要學習利用碎片化時間,畢竟馬上進入職場,很難再抽出大片碎片化時間。
如何靜下心來抽取碎片化時間去學習?
- 關掉微信,泡一杯水,上個廁所,開啟電腦;
- 跟自己說,當下最重要的是學習xx,xx很重要,其他不重要。
Anaconda
anaconda
- what與why
- anaconda是python包的管理器與不同環境管理器
- 為什麼使用anaconda?
- anaconda可以安裝並管理python的第三方包,進行數據分析。
- 可以為不同的項目建立不同的運行環境。比如python2、python3、R等等。
- how
- 去哪裡下載anaconda:
- 官網下載(搜索anaconda),下載速度慢
- 去清華鏡像下載,速度快,https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
- 把anaconda的安裝路徑寫入環境變數
- anaconda包的查看、安裝、更新、卸載(在anaconda prompt輸入)
- 查看已安裝的包:conda list
- 安裝包:
- anaconda prompt輸入:conda install 包名
- 安裝numpy:conda install numpy
- 安裝pandas:conda install pandas
- 安裝matplotlib:同上
- 安裝keras:同上
- 安裝sklearn:conda install scikit-learn(這裡不能用簡稱)
- 安裝tensorflow:conda install tensorflow
- 安裝Statsmodels :conda install Statsmodels
- 在jupyter里輸入:!pip install 包名
- 更新包:
- anaconda prompt輸入:conda upgrade 包名
- 在jupyter里輸入:!pip install keras --upgrade
- 環境的判斷、添加、激活、刪除(目前常用python3.5版本)
- 環境的判斷:輸入conda info --envs,電腦會顯示已安裝的環境
- 在python3.5里添加環境名py3:conda create --py3 python=3.5
- 激活環境py3:activate py3(這裡命名環境名py3)
- 刪除環境:conda remove -n py3 --all
- 在環境py3里安裝包
- 先激活環境py3:activate py3
- 再安裝包:conda install 包名
- 添加鏡像(安裝清華源)
- 在anaconda prompt里輸入: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes
- anaconda 複製github內容
- 先安裝git軟體,再在環境變數導入git core與git bin的地址
- 然後在anaconda prompt輸入:git clone +網址
- 常見問題
- 有時候沒法用conda安裝包,用pip安裝包卻可以
jupyter
jupyter notebook
- what與why
- 什麼是jupyter notebook
- 是一個集代碼、文件、圖片的集合web應用。
- 為什麼使用jupyter notebook(對比普通的 Python shell 或者在IDE(集成開發環境))
- jupyter可以寫markdown做備註,
- 界面清晰且簡潔,
- 方便導出成多種格式,比如.py,.html,.markdown,.pdf。
- 可以安裝瀏覽目錄
- how
- 在anaconda prompt里:
- 安裝jupyter:輸入conda install jupyter notebook
- 啟動jupyter:輸入jupyter notebook
- 安裝瀏覽目錄:pip install jupyter_contrib_nbextension
- 在Anaconda終端安裝代碼自動補全包:conda install pyreadline(為了在寫代碼時用tab鍵補齊代碼)
- jupyter notebook界面里
- 新建文件夾、創建文件、選擇環境
- 文件或文件夾複製(duplicate)、改名(rename)、移動(move)、刪除(delete)、下載(download)
- 上傳文件或圖片等:點uphold
- 設置瀏覽目錄:
- 在anaconda prompt里安裝好後,
- 在jupyter界面,找到Nbextension並點擊,然後在搜索欄輸入toc,在Table of Contents(2)前打勾
- 新建文件,並點擊圖片右上角的toc,圖片左邊會出現markdown寫成的目錄
- 目錄一般在左手邊,可以移動到右手邊
- 寫代碼時的快捷鍵
- 代碼補齊鍵:tab
- 複製c粘貼v撤銷z反撤銷y:ctrl+c/v/z/y
- 刪除一行cell:ctrl+d,刪除整個cell:兩個d或一個X
- 向上插入一個cell:a,向下插入一個cell:b
- cell轉為markdown:選中cell,按m
- 運行cell並跳到下一個cell:shift+enter
- 計時器:%%timeit
- 顯示可視化:%matplotlib inline
- 多研究jupyter的功能區:
- rename文件名
- cell run的不同
- file功能區:下載轉為各自格式
- 研究view:比如幻燈片,點擊「View」(視圖)>「Cell Toolbar」(單元格工具欄)>「Slideshow」(幻燈片)
python
python基礎
- 為什麼學習python
- 對比excel,什麼時候用python
- 面對處理大數據的時候,優先選擇python;
- 面對重複操作,利用python進行自動化;
- 現實數據並不總是放在excel里,可能在資料庫、txt里,這時候沒法用excel。
- 如何高效學習python
- 大部分情況下,沒法騰出大片時間學習,需要利用碎片化學習,利用某些app把手機與電腦連接起來,比如有道雲筆記、印象筆記。
- 多敲代碼
- 一個方向上,持續投入並系統學習。
- 學會用搜索引擎:
- https://stackoverflow.com/
- https://busca.uol.com.br/
- 調用模塊與包
- import調用給定的包與run調用自己編寫的函數:
- import 某包 as 通用簡稱 import 包名import 包名稱 as 通用別名from 包 import 函數名??
- pandas:import pandas as pd
- numpy:mport numpy as np
- 畫圖包matplotlib:import matplotlib.pyplot as plt
- 統計包statsmodels:import statsmodels as sm
- 演算法庫和數學工具包scipy:import scipy.stats as st
- 調用聚類分析包:import scipy.cluster.hierarchy as sch
- 讀取圖片包opencv:import cv2
- keras
from keras.models import Sequentialfrom keras.layers import Dense, Activation
- run:% run initpython.py(initpython.py是自編的函數(自定義函數),有多個函數)
- 快速學習python的幾個關鍵點
- 代碼注釋:
- 一行注釋用#表示
- 多行注釋用""" """表示
- 運算符
- 分類:算術運算符(4+3)與邏輯運算符(4+3)
- 算術運算符: +,-,*,/(商),//(整除)
指數:**
餘數:% - 邏輯運算符 <,<=,>,>=,==,!= 等於與不等於(字元串判斷也行)and,or,not x
- 5中數據類型=變數值
- 變數名=變數值
- 數字:整數int與浮點float
- 字元串:str
a=10 #int整數1.1 #float浮點「aaa」#string字元串float(x)#轉為浮點
- 布爾:True False
- None空值
- 容器:存放多個數據
- 容器的4個操作:加,減(delete),修改,查詢(search)
- 列表list與元組tuple
區別:是否變更,前者可變更,後者不可 list1=["a",1,6]list2=[1,2]#list運算只有加法與乘法list1+list2list1*2#重複兩遍
- 集合:沒有重複的容器 a={"a1","a2","a3","a1"}print(a)結果:??{"a1","a2","a3"}
- 集合三種操作
- 增加a.update(["a4"])
- 刪除a.discard("a3")
- 查找(布爾判斷): b="a3" in aprint(b)結果:True或者False??
字典dic:key默認無序 #dic結構,dic={key1:value1,key2:value2}dic={「name":"ann","code":4,"c":[1,"a"]}dic.keys()#求字典的keysdic.values()#求字典的values
- 條件判斷,for循環,def自定義函數函數
- 條件判斷: if a判斷:? print("cc0")elif b判斷:???print("cc1")else:print("cc2")??
- for循環:自動化(while循環並不常見) p_human=0for i in human_files_short: if face_detector(i): p_human+=1print("humanface_percent:",p_human/100)
- 列表循環 a=[1,2,3]for i in a:print(i)??????
字典循環 把股票代碼換成大寫dic={「alibaba":"baba","騰訊":"HK:00700"}?for key,value in dic:value_upper=value.upper()dict{key}=???value_upper
- break:表示退出循環,目的是當查找出某個時,退出循環
- continue:在循環中,跳出某個查詢(不顯示某個查詢)
- def自定義函數:
- 什麼是函數:它是黑盒子,類似神經網路的黑箱;把重複的工作用多行代表表示(自己編寫),方便調用
- 如果函數參數是字元串, 元祖, 和數字這3種不可更改的對象,參數傳遞時,相當於傳遞的是複製出來的數據,對於數據本身沒有影響
- 如果參數傳入的數據類型是可變的類型,當函數內部修改該數據時,原始的數據也改變了。
- 數據結構(吳軍曾經說過很重要)
- 雙向鏈表:隊列與棧
- 隊列:類似排隊吃飯,入隊就是拿尾票,出隊就是直接上桌刪除隊列首部
- 隊列兩個操作
- 隊列的入隊:隊列尾部添加a.append("006")
- 隊列的出隊:隊列首部刪除a.popleft()即把最前面的刪除
- 棧:類似木桶加水與取水,都是從最上面處理
- 棧的兩部分:
- 入棧:首部添加a.appendleft("a")
- 出棧;首部減少a.pop()
- 排序字典OrderedDict
key默認無序,但是需要有序的字典,所以需要導入collections的OrderedDict from collections import OrferedDictdict2 = OrderedDict() # 有序字典dict2[apple] = 2dict2[banana] = 1dict2[orange] = 3結果:就是書寫的順序?
- 計數器Counter
from collections import Countera.most_common(3)#出現次數最多的三個詞?
推薦閱讀:
※Anaconda使用總結
※Jupyter Notebook有哪些奇技淫巧?
※windows安裝anaconda 報錯failed to create anacoda menue?
※Anaconda配置手冊