继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

numpy入门:从零开始的高效科学计算工具

萧十郎
关注TA
已关注
手记 320
粉丝 36
获赞 166
概述

NumPy 是一个高效用于 Python 的科学计算库,特别擅长处理 N 维数组,提供数学函数简化数据科学与数学运算。它支持数组创建、访问、修改及复杂运算,适用于科研与工业应用。NumPy 为 Python 用户带来强大的数据分析与处理能力,简化计算流程。

引言

NumPy 是一个用于 Python 的高速数组处理库,主要为科学计算提供支持。它提供了高效且功能强大的 N 维数组对象,同时具备一系列的数学函数和操作,可对数组进行复杂的运算。使用 NumPy,可以实现高效的数据分析、处理和可视化,简化了数据科学和数学计算的工作流程。NumPy 是科学计算领域中不可或缺的工具,无论是科研还是工业应用,都得到了广泛的应用。

安装与设置

要开始使用 NumPy,首先需要确保你已经安装了 Python。在安装了 Python 的基础上,请按照以下步骤安装 NumPy。

在不同操作系统下的安装

  • Windows 用户

    1. 打开命令提示符。
    2. 输入 conda create -n numpy_env 创建一个新的 Conda 环境(可选,但推荐)。
    3. 进入环境:conda activate numpy_env
    4. 安装 NumPy:conda install numpy
  • Linux 或 macOS 用户
    1. 打开终端。
    2. 输入 pip install numpy 安装 NumPy。

确保安装过程顺利无误,然后通过 import numpy 来验证 NumPy 是否正确安装并可以使用。

import numpy as np
print(np.__version__)
基本操作

创建数组

NumPy 提供多种方法来创建数组。最常用的包括 np.array()np.zeros()np.ones()np.arange()

# 创建一个数组
arr = np.array([1, 2, 3])
print(arr)

# 创建一个全零数组
zeros_arr = np.zeros((3, 4))
print(zeros_arr)

# 创建一个全一数组
ones_arr = np.ones((2, 2))
print(ones_arr)

# 创建一个等差序列
range_arr = np.arange(0, 10, 2)
print(range_arr)

访问和修改数组

NumPy 数组支持多维索引和切片,类似于 Python 的列表,但提供了更高效的操作。

# 访问数组元素
element = arr[1]
print("Element at index 1:", element)

# 修改数组元素
arr[1] = 5
print("Array after modification:", arr)

# 切片获取子数组
slice_arr = arr[1:3]
print("Slice of the array:", slice_arr)

# 修改子数组
slice_arr[0] = 10
print("Array after modifying slice:", arr)

数组运算

NumPy 支持对数组执行元素级别的算术运算,如加、减、乘、除,以及更复杂的数学函数。

# 算术运算
sum_arr = arr + 5
print("Array after adding 5:", sum_arr)

# 数学函数
sqrt_arr = np.sqrt(arr)
print("Square root of the array:", sqrt_arr)

# 矩阵运算
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
product_matrix = np.dot(matrix1, matrix2)
print("Matrix product:", product_matrix)
数学函数与运算

NumPy 提供了大量的数学函数,可以直接对数组进行操作,无需循环。

# 统计函数
mean_val = np.mean(arr)
print("Mean of the array:", mean_val)

# 累加函数
cum_sum_arr = np.cumsum(arr)
print("Cumulative sum of the array:", cum_sum_arr)

# 随机数生成
random_arr = np.random.random((3, 3))
print("Random array:", random_arr)
多维数组与索引

多维数组在科学计算和数据处理中极为常见。NumPy 提供了丰富的索引和切片功能来操作多维数组。

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

# 切片获取子数组
sub_matrix = matrix[1, :]
print("Sub-array:", sub_matrix)

# 扁平化数组
flat_arr = matrix.flatten()
print("Flattened array:", flat_arr)
应用示例

假设我们有一个销售数据集,需要进行数据清洗、分析和可视化。以下是一个使用 NumPy 处理销售数据的示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 加载数据
data = pd.read_csv('sales_data.csv')
sales = data['sales']  # 假设销售额位于名为'sales'的列

# 数据清洗 - 计算总销售额
total_sales = sales.sum()  # 使用 Pandas 操作简化代码

# 数据分析 - 按地区分组计算平均销售额
regions = data['region']  # 假设地区位于名为'region'的列
unique_regions, region_sales = np.unique(regions, return_counts=True)
average_sales_per_region = (sales * region_sales[:, np.newaxis]).sum(axis=0) / region_sales

# 数据可视化 - 柱状图展示各地区销售额
plt.bar(unique_regions, average_sales_per_region)
plt.xlabel('Region')
plt.ylabel('Average Sales')
plt.title('Average Sales by Region')
plt.show()

通过上述示例,可以看到 NumPy 在数据科学工作流程中的应用,包括数据加载、清洗、分析和可视化。这展示了 NumPy 对于处理和分析大型数据集的强大能力。

以上内容涵盖了 NumPy 的基本使用方法和一些高级功能,希望这些示例代码能够帮助读者更好地理解和掌握 NumPy 的使用技巧。如果你对 NumPy 的深入学习感兴趣,可以参考更多详细的文档和教程,或者探索其在实际项目中的应用案例。此外,慕课网 提供了丰富的Python和科学计算课程,可以作为进一步学习的资源。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP