3個用于數據科學的頂級Python庫
Python許多吸引人的特點如效率、代碼可讀性和速度使它成為數據科學愛好者的首選編程語言。對于希望提升應用程序功能的數據科學家和機器學習專家來說,Python通常是首選。(例如,Andrey Bulezyuk使用Python編程語言創建了一個令人驚嘆的機器學習應用程序。)
由于Python的廣泛使用,它有大量的庫,使數據科學家可以更容易地完成復雜的任務,而不需要應付太多麻煩的編碼。以下是用于數據科學的3個頂級Python庫; 如果你想在這個領域開始你的職業生涯,看看他們吧。
1. NumPy
NumPy是頂級庫之一,它提供了有用的資源,幫助數據科學家將Python轉變為強大的科學分析和建模工具。這個流行的開源庫可以在BSD許可下獲得。它是執行基本科學計算任務的Python庫。此外NumPy是一個更大的基于python的開放源碼工具生態系統(稱為SciPy)的一部分。
該庫為Python提供了大量的數據結構,以便輕松地執行與多維數組和矩陣相關的計算。除了用于解線性代數方程和進行其他數學計算之外,NumPy還被用作不同類型的數據的通用多維容器。
此外,它完美地集成了其他編程語言,如C/C++和Fortran。NumPy庫的多功能性使它能夠輕松、快速地與其它數據庫和工具結合在一起。例如,讓我們看看NumPy(縮寫為np)如何用于兩個矩陣的乘法計算。
讓我們從導入庫開始。
- import numpy as np
接下來,讓我們使用eye()函數生成具有指定維數的單位矩陣。
- matrix_one = np.eye(3)
- matrix_one
以下是輸出:
- array([[1., 0., 0.],
- [0., 1., 0.],
- [0., 0., 1.]])
我們來生成另一個3x3矩陣。
我們將使用arange([starting number],[stopping number])函數來生成數據。注意,函數中的第一個參數是要列出的初始數字,最后一個數字不包括在生成的結果中。
此外,還應用reshape()函數將原始生成的矩陣的維度修改為所需的維度。要使矩陣“可乘”,它們的維數應該相同。
- matrix_two = np.arange(1,10).reshape(3,3)
- matrix_two
以下是輸出:
- array([[1, 2, 3],
- [4, 5, 6],
- [7, 8, 9]])
讓我們使用dot()函數來將兩個矩陣相乘。
- matrix_multiply = np.dot(matrix_one, matrix_two)
- matrix_multiply
以下是輸出:
- array([[1., 2., 3.],
- [4., 5., 6.],
- [7., 8., 9.]])
太棒了!
我們設法在不使用普通Python的情況下將兩個矩陣相乘。
下面是這個例子的全部代碼:
- import numpy as np
- #generating a 3 by 3 identity matrix
- matrix_one = np.eye(3)
- matrix_one
- #generating another 3 by 3 matrix for multiplication
- matrix_two = np.arange(1,10).reshape(3,3)
- matrix_two
- #multiplying the two arrays
- matrix_multiply = np.dot(matrix_one, matrix_two)
- matrix_multiply
2. Pandas
Pandas是另一個可以增強您的數據科學Python技能的優秀庫。就像NumPy一樣,它屬于SciPy開源軟件家族,可以在BSD自由軟件許可下使用。
Pandas提供了多種功能強大的工具,用于分析數據結構和執行通用的數據分析。該庫可以很好地處理不完整的、非結構化的和無序的真實數據,并提供了用于形成、聚合、分析和可視化數據集的工具。
在這個庫中有三種類型的數據結構:
- Series: 單維齊次數組
- DataFrame: 具有不同類型列的二維數據
- Panel: 三維,大小可變的數組
例如,讓我們看看如何使用Panda Python庫(縮寫為pd)執行一些統計計算。
讓我們從導入庫開始。
- import pandas as pd
讓我們創建一個Series的字典。
- d = {'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George','Andreas',
- 'Irene','Sagar','Simon','James','Rose']),
- '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。
- df = pd.DataFrame(d)
這是一個很好的輸出表:
- 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
下面是這個例子的全部代碼:
- import pandas as pd
- #creating a dictionary of series
- d = {'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George','Andreas',
- 'Irene','Sagar','Simon','James','Rose']),
- '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'])
- }
-
- #Create a DataFrame
- df = pd.DataFrame(d)
- print(df)
3. Matplotlib
Matplotlib也是SciPy核心包的一部分,并在BSD許可下提供。它是一個流行的Python科學庫,用于生成簡單而強大的圖表。您可以使用該Python框架進行數據科學研究,以生成有創意的圖形、圖表、直方圖和其他形狀的圖形—而無需編寫很多行代碼。例如,讓我們看看如何使用Matplotlib庫創建一個簡單的條形圖。
讓我們從導入庫開始。
- 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()
這是柱狀圖:
下面是這個例子的全部代碼:
- #importing Matplotlib Python library
- from matplotlib import pyplot as plt
- #same as import matplotlib.pyplot as plt
- #generating values for x-axis
- x = [2, 4, 6, 8, 10]
- #generating vaues for y-axis
- y = [10, 11, 6, 7, 4]
- #calling function for plotting the bar chart
- plt.bar(x,y)
- #showing the plot
- plt.show()
結語
Python編程語言在數據處理和分析方面一直做得很好,但在復雜的科學數據分析和建模方面就不那么好了。頂級的Python框架data science有助于填補這一空白,允許您執行復雜的數學計算并創建復雜的模型來理解您的數據。