jupyter note bookjavascript
自動提示php
1 #安裝 2 打開Anaconda Prompt窗口,執行第一個命令,用於安裝nbextensions: 3 pip install jupyter_contrib_nbextensions 4 再執行第二個命令,用於安裝 javascript and css files 5 jupyter contrib nbextension install --user 6 最後執行,用於安裝configurator 7 pip install jupyter_nbextensions_configurator 8 9 #卸載 10 pip uninstall jupyter_contrib_nbextensions 11 pip uninstall jupyter_nbextensions_configurator
安裝opencvcss
pip install opencv-python
pyqthtml
pip install PyQt5 pip install pyqt5-tools C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\machine\Lib\site-packages\pyqt5_tools
open ai gym 安裝java
1 $ pip install gym #最小化安裝 2 or 3 $ pip install gym[all] #所有安裝 可是安裝有問題
https://keras-gym.readthedocs.ionode
https://github.com/KristianHolsheimer/keras-gympython
keras強化學習庫linux
https://github.com/keras-rl/keras-rl/git
https://github.com/quantylab/rltrader https://pypi.org/project/fix-yahoo-finance/ linux:pip install ta-lib
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib 下載相應版本的 ta-lib windows 64bit: pip install TA_Lib-0.4.10-cp36-cp36m-win_amd64.whl conda install pandas-datareader pip install fix_yahoo_finance 畫圖 pip install https://github.com/matplotlib/mpl_finance/archive/master.zip conda install bokeh
pip install jupyterlab
須要安裝node.js 之後 從新打開 anaconda prompt jupyter labextension install jupyterlab_bokeh conda install BeautifulSoup4
https://pyecharts.org/#/zh-cn/rectangular_charts
jupyter notebook 發表在blog github
轉HTML
ipython nbconvert --to html --template basic filename.ipynb
須要頭部添加CSS
1 <style type="text/css"> 2 .highlight{background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .1em;padding:0em .5em;border-radius: 4px;} 3 .k{color: #338822; font-weight: bold;} 4 .kn{color: #338822; font-weight: bold;} 5 .mi{color: #000000;} 6 .o{color: #000000;} 7 .ow{color: #BA22FF; font-weight: bold;} 8 .nb{color: #338822;} 9 .n{color: #000000;} 10 .s{color: #cc2222;} 11 .se{color: #cc2222; font-weight: bold;} 12 .si{color: #C06688; font-weight: bold;} 13 .nn{color: #4D00FF; font-weight: bold;} 14 </style>
或者轉成MarkDown 放在Github
ipython nbconvert --to markdown filename.ipynb
量化書籍
https://wizardforcel.gitbooks.io/python-quant-uqer/19.html
http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5
移動窗口
1 import numpy as np 2 arr=np.arange(0,5) 3 print("arr=",arr)#arr= [0 1 2 3 4] 4 arr1=np.roll(arr,2)#移動窗口 5 print("arr1=",arr1)#arr1= [3 4 0 1 2]
解決:
https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/?rr=https%3A%2F%2Fdololak.tistory.com%2F520
下載安裝:Microsoft 生成工具 2015 更新 3
zipline 建立python3.5 環境 不能使用3.6 按下面順序安裝
1.安裝上面的 「Microsoft 生成工具 2015 更新 3」
2.pip install zipline
3.pip install quandl
quandl API key:s3aGDwjM8DCn6LQFSeCW
安裝sqlite3
conda install -c anaconda sqlite
1.建立/打開數據庫
1 import sqlite3 2 conn = sqlite3.connect('my_sql3.db')
2.建立表
1 import sqlite3 2 conn = sqlite3.connect('my_sql3.db') 3 c = conn.cursor() 4 c.execute('''CREATE TABLE COMPANY 5 (ID INT PRIMARY KEY NOT NULL, 6 NAME TEXT NOT NULL, 7 AGE INT NOT NULL, 8 ADDRESS CHAR(50), 9 SALARY REAL);''') 10 print("建立成功") 11 conn.commit() 12 conn.close() 13 #建立成功
3.添加 INSERT
1 import sqlite3 2 conn = sqlite3.connect('my_sql3.db') 3 c = conn.cursor() 4 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 5 VALUES (1, 'Paul', 32, 'California', 20000.00 )"); 6 7 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 8 VALUES (2, 'Allen', 25, 'Texas', 15000.00 )"); 9 10 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 11 VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )"); 12 13 c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ 14 VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )"); 15 conn.commit() 16 print("添加成功") 17 conn.close() 18 #添加成功
4.查詢SELECT
1 import sqlite3 2 3 conn = sqlite3.connect('my_sql3.db') 4 c = conn.cursor() 5 cursor = c.execute("SELECT id, name, address, salary from COMPANY") 6 for row in cursor: 7 print('ID =%d NAME=%s ADDRESS=%s SALARY=%d '%(row[0],row[1],row[2],row[3])) 8 conn.close() 9 10 """ 11 ID =1 NAME=Paul ADDRESS=California SALARY=20000 12 ID =2 NAME=Allen ADDRESS=Texas SALARY=15000 13 ID =3 NAME=Teddy ADDRESS=Norway SALARY=20000 14 ID =4 NAME=Mark ADDRESS=Rich-Mond SALARY=65000 15 """
5.修改 UPDATE
1 import sqlite3 2 3 conn = sqlite3.connect('my_sql3.db') 4 c = conn.cursor() 5 c.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1") 6 conn.commit() 7 print("更改數:",conn.total_changes) 8 9 #查詢顯示 10 cursor = conn.execute("SELECT id, name, address, salary from COMPANY") 11 for row in cursor: 12 print('ID =%d NAME=%s ADDRESS=%s SALARY=%d '%(row[0],row[1],row[2],row[3])) 13 conn.close() 14 """ 15 更改數: 1 16 ID =1 NAME=Paul ADDRESS=California SALARY=25000 17 ID =2 NAME=Allen ADDRESS=Texas SALARY=15000 18 ID =3 NAME=Teddy ADDRESS=Norway SALARY=20000 19 ID =4 NAME=Mark ADDRESS=Rich-Mond SALARY=65000 20 """
6.刪除
1 import sqlite3 2 3 conn = sqlite3.connect('my_sql3.db') 4 c = conn.cursor() 5 c.execute("DELETE from COMPANY where ID=2;") 6 conn.commit() 7 print("總共刪除行:",conn.total_changes) 8 9 #查詢顯示 10 cursor = conn.execute("SELECT id, name, address, salary from COMPANY") 11 for row in cursor: 12 print('ID =%d NAME=%s ADDRESS=%s SALARY=%d '%(row[0],row[1],row[2],row[3])) 13 conn.close() 14 """ 15 總共刪除行: 1 16 ID =1 NAME=Paul ADDRESS=California SALARY=25000 17 ID =3 NAME=Teddy ADDRESS=Norway SALARY=20000 18 ID =4 NAME=Mark ADDRESS=Rich-Mond SALARY=65000 19 """
1 #pip install sqlalchemy 2 from sqlalchemy import create_engine 3 engine = create_engine(r'sqlite:///G:\python\Prj\04.Proj\KRX_Date\foo.db')#這樣也行 4 engine = create_engine('sqlite:///G:\\python\\Prj\\04.Proj\\KRX_Date\\foo1.db')#這樣也行 5 6 7 #添加數據 8 df1 = pd.DataFrame({'name' : ['User 4', 'User 5']}) 9 df1.to_sql('users', con=engine, if_exists='append') #if_exists='append'追加 replace:替換 10 engine.execute("SELECT * FROM users").fetchall() 11 12 #代替數據 13 df1.to_sql('users', con=engine, if_exists='replace',index_label='id') 14 engine.execute("SELECT * FROM users").fetchall() 15 16 #讀取數據 17 df = pd.read_sql_query("select * from users where id < 10", engine) 18 print(df)
python 模擬鼠標 鍵盤
pip install pywinauto
1 process:進程id 2 app = Application().connect(process=2341) 3 handle:應用程序的窗口句柄 4 app = Application().connect(handle=0x010f0c) 5 path:進程的執行路徑(GetModuleFileNameEx 模塊會查找進程的每個路徑並與咱們傳入的路徑去作比較) 6 app = Application().connect(path='C:\\Windows\\System32\\notepad.exe')# 可能權限問題 7 參數組合(傳遞給pywinauto.findwindows.find_elements()這個函數) 8 app = Application().connect(title_re=".*Notepad", class_name=「Notepad」) 9 10 2. 隱式等待 11 a) wait(wait_for, timeout = None, retry_interval = None) 12 wait_for可傳入五種參數, 能夠組合傳參,但要以空格隔開: 13 exists: 窗口變成有效的句柄 14 visible: 窗口可見,沒有隱藏 15 enabled: 窗口沒有disable 16 ready: visible + enable 17 active: active 18 timeout:設置超時時間,若在n秒內沒有等到窗口在wait_for中傳入的幾種狀態,則會拋出TimeoutError。 19 retry_interval:超時後,間隔n秒再次重試。 20 Dlg.wait(「exists ready」, timeout = 5, retry_interval = 3) 21 22 b) wait_not(wait_for_not,timeout = None,retry_interval = None) 23 等待窗口不處於某種狀態時。參數與wait傳參一致。 24 25 26 層級定位 27 app.window(class_name = ’Notepad’).window(class_name = ‘#32770’) 28 app.window(class_name = ‘Notepad’).child_window(class_name = ‘#32770’) 29 30 wpath定位 31 若元素值爲空,或不是惟一的狀況下,可以使用相似selenium中xpath的定位方式,根據查子元素的序號去定位元素。 32 app_window = app.window(class_name=‘Qt5QWindowIcon’) #定位登陸窗口 33 app_window.children()[1].children()[0].children()[0] .children()[2] #定位用戶名輸入框控件(序號從0開始查) 34 35 3. 輸入框輸入 36 Dlg.control.type_keys(「xxxxx」) 37 38 4. 菜單欄 39 app.window.menu_select(Edit -> Replace) 40 41 5. 鼠標點擊 42 a)click() 點擊Button控件 43 b)check_by_click() 經過click()方法勾選checkbox 44 c)uncheck_by_click() 經過click()方法取消勾選checkbox 45 d)get_check_state() 返回checkbox的勾選狀態(0沒勾選,1勾選,2不定) 46 e)is_checked(勾選返回true,爲勾選返回false,不定返回None) 47 f)check() 勾選checkbox 48 g)uncheck() 不勾選checkbox 49 h)invoke() 點擊(uia mode) 50 i)toggle () 勾選checkbox(uia mode) 51 52 6. 鍵盤操做 53 「+」:Shift 54 「^」:Control 55 「%」:Alt
1 from pywinauto.application import Application 2 3 # 打開一個記事本(若是已經打開,能夠忽略) 4 app = Application().start("notepad.exe") 5 6 # 綁定進程,class_name和title是可選的,能夠靈活使用,若是找到多個貨沒有找到該程序,程序會報錯 7 app = Application().connect(class_name="Notepad",title="無標題 - 記事本") 8 9 # 獲得可操做的窗口,能夠傳入標題,類名,或者將標題傳入鍵值 10 win = app.window(title="無標題 - 記事本") 11 # 或者(一般使用此方法) 12 win = app["無標題 - 記事本"] 13 14 # 可使用Edit對可編輯區進行編輯 15 win.Edit.type_keys('test.txt') 16 win.menu_select("文件->保存") 17 # 當彈出新的窗口時,窗口標題變化,所以須要從新肯定可操做窗口 18 win = app['另存爲'] 19 win.Edit.type_keys('test.txt') 20 # 窗口內含有的按鈕等名稱,一樣能夠做爲鍵值傳入,從而獲得控件 21 win['保存'].click()