1. 程式人生 > >科學計算與可視化

科學計算與可視化

數組運算 正方 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()

效果:技術分享圖片

科學計算與可視化