程序員用於機器學習數據科學的3個頂級 Python 庫

NumPy

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 矩陣。

我們使用 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

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

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

下面是這個例子的完整代碼:

#導入 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 數據挖掘庫嗎?你的使用經驗是什麼樣的?請在下面的評論中和我們分享一起學習。

點擊居然老師公開課視頻播放地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章