NumPy(數值 Python 的簡稱)是其中一個頂級數據科學庫,它擁有許多有用的資源,從而幫助數據科學家把 Python 變成一個強大的科學分析和建模工具。NumPy 是在 BSD 許可證的許可下開源的,它是在科學計算中執行任務的基礎 Python 庫。SciPy 是一個更大的基於 Python 生態系統的開源工具,而 NumPy 是 SciPy 很是重要的一部分。數據庫
NumPy 爲 Python 提供了大量數據結構,從而可以輕鬆地執行多維數組和矩陣運算。除了用於求解線性代數方程和其它數學計算以外,NumPy 還能夠用作不一樣類型通用數據的多維容器。編程
此外,NumPy 還能夠和其餘編程語言無縫集成,好比 C/C++ 和 Fortran。NumPy 的多功能性使得它能夠簡單而快速地與大量數據庫和工具結合。好比,讓咱們來看一下如何使用 NumPy(縮寫成 np)來實現兩個矩陣的乘法運算。數組
咱們首先導入 NumPy 庫(在這些例子中,我將使用 Jupyter notebook):數據結構
1.import numpy **as** np
接下來,使用 eye() 函數來生成指定維數的單位矩陣:框架
1.matrix_one = np.eye(3) 2.matrix_one
輸出以下:編程語言
1.**array**([[1., 0., 0.], 2. [0., 1., 0.], 3. [0., 0., 1.]])
讓咱們生成另外一個 3×3 矩陣。ide
咱們使用 arange([starting number], [stopping number]) 函數來排列數字。注意,函數中的第一個參數是須要列出的初始數字,然後一個數字不包含在生成的結果中。函數
另外,使用 reshape() 函數把原始生成的矩陣的維度改爲咱們須要的維度。爲了使兩個矩陣「可乘」,它們須要有相同的維度。工具
1.matrix_two= np.arange(1,10).reshape(3,3) 2.matrix_two
輸出以下:學習
**array**([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
接下來,使用 dot() 函數將兩個矩陣相乘。
1.matrix_multiply= np.dot(matrix_one, matrix_two) 2.matrix_multiply
相乘後的輸出以下:
**array**([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
太好了!
咱們成功使用 NumPy 完成了兩個矩陣的相乘,而不是使用普通冗長vanilla的 Python 代碼。
下面是這個例子的完整代碼:
1.import numpy as np 2.#生成一個 3x3 單位矩陣 3.matrix_one = np.eye(3) 4.matrix_one 5.#生成另外一個 3x3 矩陣以用來作乘法運算 6.matrix_two = np.arange(1,10).reshape(3,3) 7.matrix_two 8.#將兩個矩陣相乘 9.matrix_multiply = np.dot(matrix_one, matrix_two) 10.matrix_multiply
Pandas 是另外一個能夠提升你的 Python 數據科學技能的優秀庫。就和 NumPy 同樣,它屬於 SciPy 開源軟件家族,能夠在 BSD 自由許可證許可下使用。
Pandas 提供了多能而強大的工具,用於管理數據結構和執行大量數據分析。該庫可以很好的處理不完整、非結構化和無序的真實世界數據,而且提供了用於整形、聚合、分析和可視化數據集的工具
Pandas 中有三種類型的數據結構:
Series:一維、相同數據類型的數組
DataFrame:二維異型矩陣
Panel:三維大小可變數組
例如,咱們來看一下如何使用 Panda 庫(縮寫成 pd)來執行一些描述性統計計算。
首先導入該庫:
1.import pandas **as** pd
而後,建立一個序列series字典:
1.d= 2.{'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George', 3'Andreas', 4.'Irene','Sagar','Simon','James','Rose']), 5.'Years of Experience':pd.Series([5,9,1,4,3,4,7,9,6,8,3,1]), 'Programming Language':pd.Series(['Python','JavaScript','PHP','C++','Java','Scala','React','Ruby','Angular','PHP','Python','JavaScript']) }
接下來,再建立一個數據框DataFrame:
1.df= pd.DataFrame(d)
輸出是一個很是規整的表:
1. Name Programming Language Years of Experience 0 Alfrick Python 5 1 Michael JavaScript 9 2 Wendy PHP 1 3 Paul C++ 4 4 Dusan Java 3 5 George Scala 4 6 Andreas React 7 7 Irene Ruby 9 8 Sagar Angular 6 9 Simon PHP 8 10 James Python 3 11 Rose JavaScript 1
下面是這個例子的完整代碼:
1.import pandas **as** pd 2.#建立一個序列字典 3.d= 4{'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George', 5.'Andreas', 6'Irene','Sagar','Simon','James','Rose']), 7.'Years of Experience':pd.Series([5,9,1,4,3,4,7,9,6,8,3,1]), 8.'Programming 9.Language':pd.Series(['Python','JavaScript','PHP','C++','Java','Scala','React','Ruby','Angular','PHP','Python','JavaScript']) 0. } 1.#建立一個數據框 df= pd.DataFrame(d) print(df)
Matplotlib 也是 Scipy 核心包的一部分,而且在 BSD 許可證下可用。它是一個很是流行的科學庫,用於實現簡單而強大的可視化。你可使用這個 Python 數據科學框架來生成曲線圖、柱狀圖、直方圖以及各類不一樣形狀的圖表,而且不用擔憂須要寫不少行的代碼。例如,咱們來看一下如何使用 Matplotlib 庫來生成一個簡單的柱狀圖。
首先導入該庫:
1.from matplotlib import pyplot **as** plt
而後生成 x 軸和 y 軸的數值:
x= [2, 4, 6, 8, 10] y= [10, 11, 6, 7, 4]
接下來,調用函數來繪製柱狀圖: `` plt.bar(x,y)
最後,顯示圖表:
plt.show()
柱狀圖以下: ![image.png](https://upload-images.jianshu.io/upload_images/2539976-b3de32a96980df07.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 下面是這個例子的完整代碼:
#導入 Matplotlib 庫
from matplotlib import pyplot as plt
#和 import matplotlib.pyplot as plt 同樣
#生成 x 軸的數值
x= [2, 4, 6, 8, 10]
#生成 y 軸的數值
y= [10, 11, 6, 7, 4]
#調用函數來繪製柱狀圖
plt.bar(x,y)
#顯示圖表
plt.show()
Python 編程語言很是擅長數據處理和準備,可是在科學數據分析和建模方面就沒有那麼優秀了。幸虧有這些用於數據科學的頂級 Python 框架填補了這一空缺,從而你可以進行復雜的數學計算以及建立複雜模型,進而讓數據變得更有意義。
你還知道其它的 Python 數據挖掘庫嗎?你的使用經驗是什麼樣的?請在下面的評論中和咱們分享一塊兒學習。
更多Python技術文章請關注2019年,Python技術持續更新(附教程)