原创 python編程之logging模塊的使用

       編程中,很多時候我們需要保存一個程序的中間輸出,要了解一個程序的運行情況,記錄程序運行中在一些關鍵節點處的信息,以便我們後續進行分析和問題的排查。對於簡單的應用和相對不那麼複雜的程序,我們當然可以通過最常用的print來實現

原创 阿爾法經濟學:認識市場

目錄 交易的過程 噪音vs價值信息 噪音交易者vs價值投資者 信息處理和建模 算法交易和低延遲交易 價格和市場微結構 噪聲交易者模型 基本面定價模型 總結 參考資料        對於投資者來說,以一種正確的邏輯或者框架去了解市場是非常必

原创 python2.x源代碼中文編碼報錯原因分析和解決方案

目錄 1 python執行程序哪裏會涉及到編碼解碼? 2 預備知識:python2.x程序中的字符類型及編碼處理    2.1 2.x中的str和unicode   2.2 python2.x解釋器對.py文件解碼解的實際上是unicod

原创 阿爾法經濟學系列文章

       本系列文章是筆者在讀完《阿爾法經濟學》之後的一些思考和總結,主要是關於有效市場的論述和思考、如何正確的認識市場以及阿爾法的來源分析,具體可看下列文章。 1、市場是有效的嗎? 2、阿爾法經濟學:認識市場 3、阿爾法的來源

原创 利率、連續複利和利息強度

  目錄 一、利率(實際利率和名義利率) 二、連續複利 三、利息強度 總結 一、利率(實際利率和名義利率)        利率就是資本的增長率,其定義如下所示。i表示資本a_t在時間區間h內的增長率,也即利率。這裏的利率嚴格來說,我們稱之

原创 numpy數據類型說明以及自動轉換陷阱

       numpy的dtype是一個很重要的概念,因爲numpy爲了性能,優化了內存管理,ndarray的值在內存中幾乎是連續的,同時其每個元素的內存大小也被設計成是一樣的,因此,當生成ndarray時,每個元素的數據類型都會被轉爲

原创 python函數的可變對象參數和不可變對象參數

       python中,當把一個對象作爲參數傳給一個函數時,對於可變對象和不可變對象是具有不同的行爲的。對於可變對象來說,可以認爲是將該對象的一個內存引用傳給函數,對象並沒有在內存中被新創建,所以函數對可變對象的操作會同時反映其他具

原创 對應UnboundLocalError的python binding操作

       當我們對一個變量進行引用,但是該變量在該引用操作之後又被綁定爲本地變量,那麼就會拋出UnboundLocalErro異常,一般是變量在引用前未被賦值。那麼python裏有哪些操作會將一個變量綁定爲本地變量呢? 1、賦值語句;

原创 整數轉浮點數精度溢出的原因和處理方式

       對於64位浮點數來說,其尾數有53位(包含首位的隱藏位),當一個整數轉爲浮點數時,只有當該整數的二進制位數不超過53位時,64位浮點數纔可以精確的表示該整數,不然會造成精度丟失。試想一下,當一個十進制整數的二進制有54位,那

原创 理解浮點數的二進制表示

目錄   二進制的科學計數法 浮點數的二進制表示 符號位、尾數和指數(以64位浮點數爲例) 0、規約數和非規約數 無窮大和空值NaN 二進制的科學計數法        浮點數在電腦中用二進制儲存,約定以二進制的科學計數法來進行表示一個浮點

原创 pandas DataFrame的apply函數result_type參數說明

       DataFrame的apply函數是對指定的軸進行循環處理,並返回處理的結果。這裏有一個問題在於,如果對於每一次運算,返回的結果只有一個元素,那麼最終得到的結果是一個Series;但是如果每次處理返回的不是一個元素,而是由單

原创 浮點數的各種最值推算以及對python sys.float_info的解釋

目錄 最大和最小的正規約數取值 最小和最大的正非規約數取值 浮點數能在該範圍內精確表示的最大十進制整數 大於1的最小規約數和1之間的距離epsilon 對python sys.float_info的解釋        本文將以64位浮點數

原创 使用python獲取某個月的天數和日期

       可以使用python的標準庫calendar,如下代碼所示。 import calendar res = calendar.monthrange(2020,5) print(res) [out]: (4,31) #該元組

原创 pandas DataFrame控制檯打印輸出設置浮點數小數位數

       DataFrame的輸出格式很多都可以通過pd.options的屬性實現設置,具體可以看官方文檔。本文說明如何設置在打印輸出DataFRame時設置浮點數的輸出格式,這裏以保留幾位小數爲例,可以通過pd.options.di

原创 shell編程踩坑之避免使用PATH作爲常規變量

       作爲一個shell編程小白,筆者在寫一個shell腳本的時候,使用了PATH作爲普通變量保存了一個常規路徑,結果就導致腳本中一些其他命令失效了。        原因在於,PATH是shell的關鍵字,其具有特殊含義,表示環境