引言
對於Python語言開發者,如果你經常處理大量數據運算的話,numpy是一個必不可少的程序擴展庫,它支持大維度數組與矩陣運算,提供了非常豐富的數學運算函數,並且,相對於Python自身提供的列表類型,它在運算速度上有著無與倫比的優勢。
在代碼調試過程中,我們經常會使用print函數列印查看numpy數組元素的運算結果,那麼如何規範或者自定義這種數組的輸出格式呢?
函數set_printoptions原型
numpy庫中提供了一個函數set_printoptions,通過這個函數可對列印結果進行各種設置。
其函數原型如下圖所示:
從這個函數的參數可看出,通過這個函數可對數組元素的輸出精度、元素個數門限值、是否壓縮科學計數法表示等等進行設置,甚至也可以通過formatter參數進行數組元素的完全自定義顯示。
下面通過例子簡單介紹數組元素輸出格式的幾種常用設置方法。
例1:設置數組精度
如對於數組a = [3.1415926, 1.2, 5.0],要求小數點後保留3位小數,程序代碼如下:
代碼中提供了兩種方式,一種是設置precision參數值為3,但這種方法當末尾為0時會自動省略掉。
另一種方法是使用formatter參數進行自定義設置,該參數是一個字典類型,本例中設置float類型的元素其顯示格式強制為3位小數,此時為末尾為0時不會捨去,符合題目要求。
例2:設置列印元素的個數
如對於數組包含0-19共20個元素的數組b,可通過參數threshold的值設置列印元素的個數,程序代碼如下:
參數threshold值的意義是,當元素個數大於該值時,會省略顯示,只顯示兩頭的數據,中間用省略號代替。
如上面代碼中,當threshold值設置為10時,只列印了前後各3個元素的數值。
如果將threshold的值設置為np.nan時, 則無論數組中包含多少元素,都要列印所有的元素值。
例3:設置是否以科學計數法表示
如對於數組c = [1.5e-10, 1.5, 1500],通過設置參數suppress的值,可修改數組元素中的值是否以科學計數法表示,程序代碼如下:
上面代碼中當suppress值設為True時,說明為壓縮方式,即不以科學計數法表示。
例4:完全自定義顯示
如對於包含5個值為0-1之間的隨機數的數組d,根據元素的值列印不同的信息,本例中當值大於0.5時列印「+1」,否則列印「-1」,程序代碼如下:
上面代碼中使用formatter參數實現元素輸出格式的完全自定義形式,本例字典參數中』all』表明對於所有數據類型的元素,使用lamda表達式判斷其輸出值,分別輸出「+1」和「-1」的值。
總結
本文僅演示了函數set_printoptions中幾個常用參數的設置方法,如果還有其它的設置需求(如省略列印時設置兩頭列印的元素個數等),大家可參考其幫助文檔,進行對應的設置即可。
本文由編碼那些事原創,請關注+轉發+收藏+點讚,帶你一起長知識!