数据科学双雄:NumPy与Pandas实战指南

数据科学双雄:NumPy与Pandas实战指南

【免费下载链接】100-Days-Of-ML-Code MLEveryday/100-Days-Of-ML-Code: 是一项关于机器学习的开源项目,旨在帮助开发者通过 100 天的代码实践,掌握机器学习的知识和技能。该项目包含了各种机器学习算法的实现和讲解,以及相关文档和代码注释,对于初学者和有经验的开发者都具有很高的参考价值。 【免费下载链接】100-Days-Of-ML-Code 项目地址: https://gitcode.com/gh_mirrors/100/100-Days-Of-ML-Code

你是否还在为数据处理效率低下而烦恼?面对海量数据不知从何下手?本文将带你掌握NumPy与Pandas这两款Python数据科学必备工具,通过实际案例演示如何高效处理数据,让你的数据分析之路事半功倍。读完本文,你将能够:

  • 熟练使用NumPy进行数组运算和数据处理
  • 掌握Pandas的数据读取、清洗和转换技巧
  • 了解如何在实际项目中综合运用这两个工具

NumPy基础:数组操作与数学计算

NumPy(Numerical Python)是Python科学计算的基础库,提供了高性能的多维数组对象和数学函数。在项目中,几乎所有的数据处理和机器学习算法实现都依赖于NumPy,例如Day 1_Data_Preprocessing.py中就大量使用了NumPy进行数据处理。

数组创建与基本操作

NumPy的核心是ndarray对象,可以通过多种方式创建:

import numpy as np

# 从列表创建数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)  # 输出: [1 2 3 4 5]

# 创建特定形状的数组
zeros = np.zeros((3, 3))  # 3x3的零矩阵
ones = np.ones((2, 4))   # 2x4的全1矩阵
rand = np.random.rand(2, 3)  # 2x3的随机矩阵

数组运算

NumPy支持向量化运算,无需编写循环即可对整个数组进行操作:

# 基本运算
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)  # 输出: [5 7 9]
print(a * 2)  # 输出: [2 4 6]
print(np.dot(a, b))  # 点积,输出: 32

# 统计运算
data = np.array([[1, 2, 3], [4, 5, 6]])
print(np.mean(data))  # 平均值,输出: 3.5
print(np.sum(data, axis=0))  # 按列求和,输出: [5 7 9]

在数据预处理过程中,NumPy的缺失值处理功能尤为重要。如Day 1_Data_Preprocessing.py中所示,使用np.nan表示缺失值,并通过Imputer进行填充:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy="mean")

Pandas核心:数据处理与分析

Pandas提供了高效的数据结构和数据分析工具,是数据清洗、转换和分析的理想选择。项目中的多个文件如Day 3_Multiple_Linear_Regression.pyDay 6_Logistic_Regression.py都广泛使用了Pandas进行数据处理。

DataFrame:数据处理的核心结构

DataFrame是Pandas最常用的数据结构,类似于表格,可以方便地进行数据操作:

import pandas as pd

# 创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'London', 'Paris']
}
df = pd.DataFrame(data)

# 查看数据
print(df.head())  # 查看前几行
print(df.info())  # 查看数据信息
print(df.describe())  # 统计摘要

数据读取与处理

Pandas支持多种数据格式的读取,如CSV、Excel等。在项目中,我们通常从CSV文件读取数据,如Day 1_Data_Preprocessing.py所示:

# 读取CSV文件
dataset = pd.read_csv('../datasets/Data.csv')

# 数据选择
X = dataset.iloc[:, :-1].values  # 选择所有行和除最后一列外的所有列
Y = dataset.iloc[:, 3].values    # 选择所有行和第四列

数据清洗是数据分析的重要步骤,包括处理缺失值、重复值等:

# 处理缺失值
df.dropna(inplace=True)  # 删除含有缺失值的行
# 或使用填充方法
df.fillna(df.mean(), inplace=True)

# 处理重复值
df.drop_duplicates(inplace=True)

数据转换与分组

Pandas提供了强大的数据转换和分组功能,方便进行特征工程:

# 添加新列
df['Age_Plus_5'] = df['Age'] + 5

# 分组统计
grouped = df.groupby('City')
print(grouped['Age'].mean())  # 按城市分组计算平均年龄

综合实战:从数据预处理到模型训练

在实际项目中,NumPy和Pandas通常结合使用,完成从数据加载、清洗到特征工程的整个流程。以下是一个典型的数据预处理流程,整合了NumPy和Pandas的核心功能:

import numpy as np
import pandas as pd
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler

# 1. 读取数据
dataset = pd.read_csv('../datasets/Data.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 3].values

# 2. 处理缺失值
imputer = SimpleImputer(missing_values=np.nan, strategy="mean")
X[:, 1:3] = imputer.fit_transform(X[:, 1:3])

# 3. 特征缩放
sc_X = StandardScaler()
X = sc_X.fit_transform(X)

这个流程在项目中的多个文件中都有体现,例如Day 1_Data_Preprocessing.pyDay 2_Simple_Linear_Regression.py等。通过这种标准化的数据预处理流程,可以确保后续的机器学习模型能够获得高质量的输入数据。

进阶资源与学习路径

掌握NumPy和Pandas是数据科学之旅的重要一步,但持续学习才能不断提升。项目提供了丰富的学习资源,例如:

总结与展望

NumPy和Pandas是Python数据科学生态系统的基石,掌握这两个工具对于任何数据科学家和机器学习工程师都至关重要。通过本文的介绍和项目中的实际案例,你应该已经对这两个工具的基本用法和实战应用有了一定的了解。

然而,数据科学领域不断发展,新的工具和技术层出不穷。建议你继续深入学习NumPy和Pandas的高级特性,并关注scikit-learn、TensorFlow等机器学习库,将数据处理与机器学习模型结合起来,解决更复杂的实际问题。

希望本文对你的学习有所帮助,如果你有任何问题或建议,欢迎在项目中提交issue或参与讨论。祝你在数据科学的道路上越走越远!

点赞、收藏、关注三连,下期我们将介绍数据可视化的核心工具,敬请期待!

【免费下载链接】100-Days-Of-ML-Code MLEveryday/100-Days-Of-ML-Code: 是一项关于机器学习的开源项目,旨在帮助开发者通过 100 天的代码实践,掌握机器学习的知识和技能。该项目包含了各种机器学习算法的实现和讲解,以及相关文档和代码注释,对于初学者和有经验的开发者都具有很高的参考价值。 【免费下载链接】100-Days-Of-ML-Code 项目地址: https://gitcode.com/gh_mirrors/100/100-Days-Of-ML-Code

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值