3个用于数据科学的顶级Python库
即将开播:5月20日,基于kubernetes打造企业级私有云实践
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()
这是柱状图: