3個(gè)用于數(shù)據(jù)科學(xué)的頂級Python庫
Python許多吸引人的特點(diǎn)如效率、代碼可讀性和速度使它成為數(shù)據(jù)科學(xué)愛好者的首選編程語言。對于希望提升應(yīng)用程序功能的數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)專家來說,Python通常是首選。(例如,Andrey Bulezyuk使用Python編程語言創(chuàng)建了一個(gè)令人驚嘆的機(jī)器學(xué)習(xí)應(yīng)用程序。)
由于Python的廣泛使用,它有大量的庫,使數(shù)據(jù)科學(xué)家可以更容易地完成復(fù)雜的任務(wù),而不需要應(yīng)付太多麻煩的編碼。以下是用于數(shù)據(jù)科學(xué)的3個(gè)頂級Python庫; 如果你想在這個(gè)領(lǐng)域開始你的職業(yè)生涯,看看他們吧。
1. NumPy
NumPy是頂級庫之一,它提供了有用的資源,幫助數(shù)據(jù)科學(xué)家將Python轉(zhuǎn)變?yōu)閺?qiáng)大的科學(xué)分析和建模工具。這個(gè)流行的開源庫可以在BSD許可下獲得。它是執(zhí)行基本科學(xué)計(jì)算任務(wù)的Python庫。此外NumPy是一個(gè)更大的基于python的開放源碼工具生態(tài)系統(tǒng)(稱為SciPy)的一部分。
該庫為Python提供了大量的數(shù)據(jù)結(jié)構(gòu),以便輕松地執(zhí)行與多維數(shù)組和矩陣相關(guān)的計(jì)算。除了用于解線性代數(shù)方程和進(jìn)行其他數(shù)學(xué)計(jì)算之外,NumPy還被用作不同類型的數(shù)據(jù)的通用多維容器。
此外,它完美地集成了其他編程語言,如C/C++和Fortran。NumPy庫的多功能性使它能夠輕松、快速地與其它數(shù)據(jù)庫和工具結(jié)合在一起。例如,讓我們看看NumPy(縮寫為np)如何用于兩個(gè)矩陣的乘法計(jì)算。
讓我們從導(dǎo)入庫開始。
- import numpy as np
接下來,讓我們使用eye()函數(shù)生成具有指定維數(shù)的單位矩陣。
- matrix_one = np.eye(3)
- matrix_one
以下是輸出:
- array([[1., 0., 0.],
- [0., 1., 0.],
- [0., 0., 1.]])
我們來生成另一個(gè)3x3矩陣。
我們將使用arange([starting number],[stopping number])函數(shù)來生成數(shù)據(jù)。注意,函數(shù)中的第一個(gè)參數(shù)是要列出的初始數(shù)字,最后一個(gè)數(shù)字不包括在生成的結(jié)果中。
此外,還應(yīng)用reshape()函數(shù)將原始生成的矩陣的維度修改為所需的維度。要使矩陣“可乘”,它們的維數(shù)應(yīng)該相同。
- matrix_two = np.arange(1,10).reshape(3,3)
- matrix_two
以下是輸出:
- array([[1, 2, 3],
- [4, 5, 6],
- [7, 8, 9]])
讓我們使用dot()函數(shù)來將兩個(gè)矩陣相乘。
- matrix_multiply = np.dot(matrix_one, matrix_two)
- matrix_multiply
以下是輸出:
- array([[1., 2., 3.],
- [4., 5., 6.],
- [7., 8., 9.]])
太棒了!
我們設(shè)法在不使用普通Python的情況下將兩個(gè)矩陣相乘。
下面是這個(gè)例子的全部代碼:
- 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是另一個(gè)可以增強(qiáng)您的數(shù)據(jù)科學(xué)Python技能的優(yōu)秀庫。就像NumPy一樣,它屬于SciPy開源軟件家族,可以在BSD自由軟件許可下使用。
Pandas提供了多種功能強(qiáng)大的工具,用于分析數(shù)據(jù)結(jié)構(gòu)和執(zhí)行通用的數(shù)據(jù)分析。該庫可以很好地處理不完整的、非結(jié)構(gòu)化的和無序的真實(shí)數(shù)據(jù),并提供了用于形成、聚合、分析和可視化數(shù)據(jù)集的工具。
在這個(gè)庫中有三種類型的數(shù)據(jù)結(jié)構(gòu):
- Series: 單維齊次數(shù)組
- DataFrame: 具有不同類型列的二維數(shù)據(jù)
- Panel: 三維,大小可變的數(shù)組
例如,讓我們看看如何使用Panda Python庫(縮寫為pd)執(zhí)行一些統(tǒng)計(jì)計(jì)算。
讓我們從導(dǎo)入庫開始。
- import pandas as pd
讓我們創(chuàng)建一個(gè)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'])
- }
讓我們創(chuàng)建一個(gè)DataFrame。
- df = pd.DataFrame(d)
這是一個(gè)很好的輸出表:
- 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
下面是這個(gè)例子的全部代碼:
- 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許可下提供。它是一個(gè)流行的Python科學(xué)庫,用于生成簡單而強(qiáng)大的圖表。您可以使用該P(yáng)ython框架進(jìn)行數(shù)據(jù)科學(xué)研究,以生成有創(chuàng)意的圖形、圖表、直方圖和其他形狀的圖形—而無需編寫很多行代碼。例如,讓我們看看如何使用Matplotlib庫創(chuàng)建一個(gè)簡單的條形圖。
讓我們從導(dǎo)入庫開始。
- from matplotlib import pyplot as plt
讓我們生成x軸和y軸的值。
- x = [2, 4, 6, 8, 10]
- y = [10, 11, 6, 7, 4]
讓我們調(diào)用繪制柱狀圖的函數(shù)。
- plt.bar(x,y)
讓我們來看看繪圖。
- plt.show()
這是柱狀圖:
下面是這個(gè)例子的全部代碼:
- #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()
結(jié)語
Python編程語言在數(shù)據(jù)處理和分析方面一直做得很好,但在復(fù)雜的科學(xué)數(shù)據(jù)分析和建模方面就不那么好了。頂級的Python框架data science有助于填補(bǔ)這一空白,允許您執(zhí)行復(fù)雜的數(shù)學(xué)計(jì)算并創(chuàng)建復(fù)雜的模型來理解您的數(shù)據(jù)。