科學計算與可視化
阿新 • • 發佈:2019-04-22
數組運算 正方 shape show 其中 通過 bsp code 什麽
(1)numpy以及matplotlib的學習總結及應用
NumPy是Python語言的一個擴充程序庫。支持高級大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。Numpy內部解除了CPython的GIL(全局解釋器鎖),運行效率極好,是大量機器學習框架的基礎庫!
NumPy的全名為Numeric Python,是一個開源的Python科學計算庫,它包括:
- 一個強大的N維數組對象ndrray;
- 比較成熟的(廣播)函數庫;
- 用於整合C/C++和Fortran代碼的工具包;
- 實用的線性代數、傅裏葉變換和隨機數生成函數
Numpy中定義的最重要的對象是成為ndarray的N維數組類型。它描述相同類型的元素集合。可以使用基於零的索引訪問集合中的項目。
ndarray屬性:ndim屬性,表示維度個數;shape屬性,表示各維度大小;dtype屬性,表示數據類型。
實例:
import numpy print (‘使用列表生成一維數組‘) data = [1,2,3,4,5] x = numpy.array(data) print(x) print (x.dtype) print(x.ndim) print(x.shape) print (‘使用列表生成二維數組‘) data = [[1,0],[2,0],[3,3]] x = numpy.array(data) print (x) print (x.ndim)print (x.shape)
效果如下:
matplotlib:
概述:matplotlib是基於numpy的一套Python工具包。這個包提供了豐富的數據繪圖工具,主要用於繪制一些統計圖形。
在代碼執行過程中,有兩種方式更改參數:
- 使用參數字典(rcParams)
- 調用matplotlib.rc()命令 通過傳入關鍵字元祖,修改參數
如果不想每次使用matplotlib時都在代碼部分進行配置,可以修改matplotlib的文件參數。可以用matplot.get_config()
命令來找到當前用戶的配置文件目錄。
配置文件包括以下配置項:
axex: 設置坐標軸邊界和表面的顏色、坐標刻度值大小和網格的顯示
backend: 設置目標暑促TkAgg和GTKAgg
figure: 控制dpi、邊界顏色、圖形大小、和子區( subplot)設置
font: 字體集(font family)、字體大小和樣式設置
grid: 設置網格顏色和線性
legend: 設置圖例和其中的文本的顯示
line: 設置線條(顏色、線型、寬度等)和標記
patch: 是填充2D空間的圖形對象,如多邊形和圓。控制線寬、顏色和抗鋸齒設置等。
savefig: 可以對保存的圖形進行單獨設置。例如,設置渲染的文件的背景為白色。
verbose: 設置matplotlib在執行期間信息輸出,如silent、helpful、debug和debug-annoying。
xticks和yticks: 為x,y軸的主刻度和次刻度設置顏色、大小、方向,以及標簽大小。
用來該表線條的屬性
線條風格linestyle或ls | 描述 | 線條風格linestyle或ls | 描述 | |
---|---|---|---|---|
‘-‘ | 實線 | ‘:’ | 虛線 | |
‘–’ | 破折線 | ‘None’,’ ‘,’’ | 什麽都不畫 | |
‘-.’ | 點劃線 |
線條標記
標記maker | 描述 | 標記 | 描述 | |
---|---|---|---|---|
‘o’ | 圓圈 | ‘.’ | 點 | |
‘D’ | 菱形 | ‘s’ | 正方形 | |
‘h’ | 六邊形1 | ‘*’ | 星號 | |
‘H’ | 六邊形2 | ‘d’ | 小菱形 | |
‘_’ | 水平線 | ‘v’ | 一角朝下的三角形 | |
‘8’ | 八邊形 | ‘<’ | 一角朝左的三角形 | |
‘p’ | 五邊形 | ‘>’ | 一角朝右的三角形 | |
‘,’ | 像素 | ‘^’ | 一角朝上的三角形 | |
‘+’ | 加號 | ‘\ | ‘ | 豎線 |
‘None’,’’,’ ‘ | 無 | ‘x’ | X |
(2)成績雷達圖:
import matplotlib.pyplot as plt import numpy as np import matplotlib plt.rcParams[‘font.family‘]=‘SimHei‘ labels=np.array([‘總成績‘,‘單選‘,‘程序題‘,‘剩余用時‘,‘復寫率‘]) nAttr=5 data=np.array([9.5,9,10,6,9]) angles=np.linspace(0,2*np.pi,nAttr,endpoint=False) data=np.concatenate((data,[data[0]])) angles=np.concatenate((angles,[angles[0]])) fig=plt.figure(facecolor=‘white‘) plt.subplot(111,polar=True) plt.plot(angles,data,‘b*-‘,color=‘y‘,linewidth=3) plt.fill(angles,data,facecolor=‘g‘,alpha=0.25) plt.thetagrids(angles*180/np.pi,labels) plt.figtext(0.52,0.95,‘python的成績表‘,ha=‘center‘) plt.grid(True) plt.savefig(‘scorce_radar.JPG‘) plt.show()
效果:
科學計算與可視化