为了账号安全,请及时绑定邮箱和手机立即绑定

numpy实战:从零基础到轻松上手的矩阵运算与数据处理

标签:
杂七杂八
numpy实战:从零基础到轻松上手的矩阵运算与数据处理

numpy 是 Python 中的科学计算库,提供了高效、灵活的多维数组对象和一系列数学函数。在数据科学、机器学习以及许多其他领域,numpy 都是不可或缺的工具。本教程将引导你从零基础开始,逐步掌握 numpy 的核心功能,包括数组操作、矩阵运算以及高效的数据处理,最后通过实际案例加深理解。

1. numpy 基础介绍

安装与配置

首先,确保你的 Python 环境中已安装 numpy。在命令行中运行以下命令即可安装 numpy:

pip install numpy

与 Python 其他库的关系

numpy 数组提供了比 Python 列表更高效的数据结构,适用于大多数计算密集型应用。与 pandas、matplotlib 等库集成时,numpy 数组充当数据的主要容器。

示例代码

import numpy as np

# 创建一个简单的 numpy 数组
arr = np.array([1, 2, 3, 4, 5])
print("创建的数组:", arr)

# 查看数组的形状
print("形状:", arr.shape)

# 访问数组中的元素
print("访问第一个元素:", arr[0])

# 切片操作
print("切片操作:", arr[1:4])

# 使用 numpy 的数学函数
print("数组的平方:", np.square(arr))
2. 多维数组的创建与操作

在 numpy 中,多维数组是通过将数据组织成矩阵或更高维度的结构来实现的。

示例代码

# 创建一个二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:", matrix)

# 转置操作
print("转置后的数组:", matrix.T)

# 创建一个三维数组
tensor = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("三维数组:", tensor)

# 获取特定维度的形状
print("三维数组的形状:", tensor.shape)
3. 矩阵运算

numpy 提供了高效的矩阵运算功能,包括加法、减法、乘法、转置和求逆等。

示例代码

# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩阵加法
print("矩阵加法:", np.add(A, B))

# 矩阵乘法
print("矩阵乘法:", np.dot(A, B))

# 矩阵转置
print("矩阵 A 的转置:", A.T)

# 矩阵求逆
try:
    print("矩阵 A 的逆:", np.linalg.inv(A))
except np.linalg.LinAlgError:
    print("矩阵 A 不可逆")
4. 数据处理与操作

数据清洗、重塑和排序是数据分析的核心步骤,numpy 提供了高效的方法来执行这些操作。

示例代码

# 创建一个一维数组
data = np.array([3, 1, 2, 5, 4])

# 数据排序
sorted_data = np.sort(data)
print("排序后的数组:", sorted_data)

# 数据清洗:删除重复元素
unique_data = np.unique(data)
print("唯一值:", unique_data)

# 数组的重塑
reshaped_data = data.reshape(2, 2)
print("重塑后的数组:", reshaped_data)

# 数据重塑并排序
sorted_reshaped_data = np.sort(reshaped_data, axis=None)
print("按元素排序后的数组:", sorted_reshaped_data)
5. 高效数据查找与排序

numpy 提供了高效的查找和排序功能,对数据处理非常有用。

示例代码

# 查找数组中的最大值和最小值
maximum = np.max(data)
minimum = np.min(data)
print("最大值:", maximum, "最小值:", minimum)

# 查找特定值的索引
index = np.where(data == 3)
print("索引:", index)

# 使用布尔索引进行数据过滤
filtered_data = data[data > 2]
print("大于 2 的元素:", filtered_data)

# 对数组进行升序排序
sorted_data = np.sort(data)
print("升序排序后的数组:", sorted_data)

# 对数组进行降序排序
sorted_data_desc = np.sort(data)[::-1]
print("降序排序后的数组:", sorted_data_desc)
6. 案例实战

示例代码

假设我们有一个销售数据集,包含商品的销售数量、单价和销售日期。

# 样本销售数据集
sales_data = np.array([
    [100, 15.99, "2023-01-01"],
    [200, 19.99, "2023-01-02"],
    [150, 24.99, "2023-01-03"],
    [300, 19.99, "2023-01-04"],
    [250, 15.99, "2023-01-05"]
])

# 分割数据
quantities = sales_data[:, 0].astype(int)
prices = sales_data[:, 1].astype(float)
dates = sales_data[:, 2]

# 计算总销售额
total_sales = np.sum(quantities * prices)
print("总销售额:", total_sales)

# 按日期排序数据
sorted_sales = sales_data[np.argsort(dates)]
print("按日期排序的数据:", sorted_sales)

# 使用布尔索引筛选特定价格的商品
filtered_sales = sales_data[prices > 18.0]
print("价格高于 18 美元的商品:", filtered_sales)

通过上述教程和示例代码,你应已掌握了 numpy 的基础知识和实用技能,能够运用 numpy 进行高效的数据处理和分析。推荐在学习过程中,实践上述代码并尝试自己生成数据集,以加深对 numpy 的理解。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消