ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

适合初学者的 5 个最佳 Python 数据科学库

2023-03-12 12:15:12  阅读:690  来源: 互联网

标签:Python norm 函数 数据库


作为一个刚刚开始钻研数据科学世界的人,我可以证明 Python 的强大和流行。Python 吸引我的原因之一是它的简单性和可读性。与其他编程语言不同,Python 旨在易于理解,使像我这样的初学者也能上手。

更重要的是,Python 的用途非常广泛,配备了大量专为数据科学任务设计的库和框架。无论您是处理大型数据集、创建可视化效果还是构建机器学习模型,都有一个库可以帮助您实现目标。对于那些刚开始接触数据科学并正在寻找好的起点的人来说,这里有一些非常适合初学者的流行库:

麻木的

NumPy 是一个流行的 Python 库,它提供了一种称为“数组”的高效且强大的数据结构,用于存储和操作大量数据。该库还包括各种数学函数,可以对这些数组进行复杂的运算,例如线性代数和统计分析。NumPy 广泛应用于科学计算、数据分析和机器学习等领域,并且可以很容易地与 Python 生态系统中的其他库集成。从本质上讲,NumPy 使用户可以更轻松地在 Python 中执行复杂的数值计算和操作大型数据集。

以下是如何在 Python 中使用 NumPy 的示例:

import numpy as np 

# 创建一个大小为 10 的一维数组
a = np.array([ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]) 

# 打印数组
print (a) 

# 访问使用索引和切片的元素
print (a[ 0 ])     # Output: 0 
print (a[ 2 : 5 ])   # Output: [2 3 4] 

# Reshape the array into a 2D array of size 5x2
 b = a.reshape(5 , 2 ) 

# 打印新数组
print (b) 

# 使用索引和切片访问新数组的元素
print (b[ 1 , 0 ])      # 输出:2 
print (b[ 3 :, :])     # 输出: [[6 7] 
                  # [8 9]]

在此示例中,我们使用 np.array() 创建一维数组并打印它。我们可以像常规 Python 列表一样使用索引和切片来访问数组的元素。我们使用 reshape() 将数组重塑为二维数组并打印出来。我们也可以使用索引和切片访问新数组的元素。

   

Pandas 是一个用于数据操作和分析的 Python 库。它提供易于使用的数据结构和工具来处理结构化数据,例如电子表格或 SQL 表。Pandas 建立在 NumPy 之上,提供两种主要的数据结构,Series 和 DataFrame,它们可以保存不同类型的数据,并且易于操作、分析和可视化。它还为数据操作和分析提供了广泛的功能和方法,例如过滤、排序、分组、合并和聚合数据。Pandas 广泛应用于数据科学、机器学习和商业分析领域,已成为数据专业人士和研究人员的必备工具。

以下是如何在 Python 中使用 Pandas 的示例:

假设我们有一个名为“students.csv”的 CSV 文件,其中包含学生的详细信息,包括他们的姓名、年龄和年级。

姓名,年龄,年级
Alice,18,A 
Bob,19,B 
Charlie,17,C 
David,18,B

我们可以使用 Pandas 读取 CSV 文件并创建一个 DataFrame:

import pandas as pd 

# 读取 CSV 文件
df = pd.read_csv( 'students.csv' ) 

# 打印 DataFrame 
print (df)

创建 DataFrame 后,我们可以选择对其执行多项操作。其中一些操作包括选择特定的行或列,应用过滤器根据特定条件提取数据,以及计算汇总统计信息:

# 选择 'name' 和 'grade' 列
df1 = df[[ 'name' , 'grade' ]] 

# 过滤 18 岁以上的学生
df2 = df[df[ 'age' ] > 18 ] 

# 计算平均年龄和成绩
avg_age = df[ 'age' ].mean() av 
​​g_grade = df[ 'grade' ].value_counts(normalize= True ) 

# 打印结果
print (df1) 
print (df2) 
print (avg_age) 
print (avg_grade )

Matplotlib

Matplotlib 是一个 Python 库,用于创建各种类型的绘图、图表和图形。它是一个多功能库,可用于在 Python 中创建基本和复杂的可视化。它提供了多种工具和函数来创建不同类型的图,包括线图、散点图、条形图和直方图等。

使用 Matplotlib,用户可以通过设置颜色、标签和标题等各种参数来自定义绘图的外观。该库还支持各种输出格式,包括 PNG、PDF 和 SVG。这使得导出图表以用于出版物、演示文稿或其他应用程序变得容易。

Matplotlib 可以与其他 Python 库(例如 NumPy 和 Pandas)结合使用,以创建强大的数据可视化效果。它广泛用于数据科学和科学研究社区,以清晰和有意义的方式分析和呈现数据。

以下是如何在 Python 中使用 Matplotlib 的示例:

import matplotlib.pyplot as plt 

# Data
 x = [ 1 , 2 , 3 , 4 , 5 ] 
y = [ 2 , 4 , 6 , 8 , 10 ] 

# 创建绘图
plt.plot(x, y) 

# 自定义
绘图plt. title( "Line Plot example" ) 
plt.xlabel( "X-axis" ) 
plt.ylabel( "Y-axis" ) 

# 显示绘图
plt.show()

此代码块生成一个显示 x 和 y 值的散点图。它还为绘图添加了标题和轴标签,最后,使用 plt.show() 显示绘图。

   

海波恩

Seaborn 是一个 Python 库,它提供了一个用户友好的界面,用于创建美观且信息丰富的数据可视化。它建立在 Matplotlib 之上,提供广泛的可视化技术,包括用于统计分析的专用图。Seaborn 可以轻松自定义绘图的外观,并广泛用于数据科学和研究社区。

以下是如何在 Python 中使用 Seaborn 的示例:

import seaborn as sns 
import matplotlib.pyplot as plt 
import numpy as np 

# 生成一些随机数据
x = np.arange( 0 , 10 , 0.1 ) 
y = np.sin(x) 

# 创建线图
sns.lineplot(x=x , y=y) 

# 添加标题和轴标签
plt.title( "Sine Function" ) 
plt.xlabel( "x" ) 
plt.ylabel( "y" ) 

# 显示绘图
plt.show()

在这个例子中,我们利用 NumPy 来生成任意数据,这涉及生成一个从 0 到 10(不包括 10)的 x 值数组,增量为 0.1,它们对应的正弦值为 y。之后,我们使用 sns.lineplot() 建立一个以 x 和 y 作为输入的线图。此外,我们使用 Matplotlib 的 plt 函数包含标题和轴标签,并使用 plt.show() 展示绘图。

科学

Scipy 是一个 Python 库,为数值积分、优化、信号处理、线性代数等科学计算任务提供了大量模块,广泛应用于科学和工程领域的数据分析、建模和仿真。

以下是如何在 Python 中使用 Scipy 的示例:

from scipy import optimize 

# 定义二次方程
def  quadratic ( x ): 
    return x** 2 - 4 *x + 3 

# 求方程根 roots
 = optimize.fsolve(quadratic, [ 0 , 3 ]) 

print ( "方程的根是:" , roots)

本例利用 scipy.stats 模块的 norm 函数创建一个正态分布对象,然后通过调用该对象的 cdf 方法计算特定点的 CDF 值,并将输出打印到控制台。

总之,Python 的简单性、可读性和通用性使其成为对数据科学感兴趣的初学者的优秀语言。由于其广泛的库和框架集合,它已成为各种数据科学任务的首选语言,例如大型数据集处理、可视化和机器学习。

愿代码与你同在,

标签:Python,norm 函数,数据库
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有