【30天玩转python】使用第三方库(如 NumPy、Pandas)

使用第三方库(如 NumPy、Pandas)

Python 的强大之处在于其广泛的第三方库生态,特别是在科学计算、数据分析等领域。NumPyPandas 是 Python 最常用的两个库,分别用于数值计算和数据处理。学习和掌握这些库将极大地提升你的编程效率和解决问题的能力。


1. NumPy 简介

NumPy 是 Python 的科学计算基础库,提供了支持高效多维数组和矩阵运算的功能。它是许多其他科学计算库(如 Pandas、SciPy 等)的基础。

1.1 安装 NumPy

在使用 NumPy 之前,需要先安装它。可以使用 pip 命令进行安装:

bash 复制代码
pip install numpy
1.2 NumPy 的主要功能
  • 多维数组对象(ndarray):提供高效的数组运算。
  • 广播机制:支持对不同形状数组进行运算。
  • 线性代数:提供矩阵、向量和线性代数操作。
  • 随机数生成:用于生成随机数或随机分布的数据。
1.3 创建 NumPy 数组

NumPy 的核心是 ndarray,它是一个多维数组对象。可以通过不同的方式创建数组。

示例:创建 NumPy 数组

python 复制代码
import numpy as np

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

# 创建二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 创建全零数组
zeros_array = np.zeros((3, 3))

# 创建全一数组
ones_array = np.ones((2, 4))

# 创建指定范围的数组
range_array = np.arange(0, 10, 2)

print(array_1d)
print(array_2d)
print(zeros_array)
print(ones_array)
print(range_array)
1.4 数组运算

NumPy 的强大之处在于能够对数组执行矢量化运算,无需显式地写循环。这使得代码简洁且执行效率高。

示例:数组加法与矩阵乘法

python 复制代码
import numpy as np

# 数组加法
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b  # [5, 7, 9]

# 矩阵乘法
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
result = np.dot(matrix1, matrix2)  # 矩阵乘法

print(c)
print(result)
1.5 数学函数

NumPy 提供了丰富的数学函数,用于数组的元素级别操作。

示例:应用数学函数

python 复制代码
import numpy as np

a = np.array([1, 4, 9, 16])

# 计算平方根
sqrt_a = np.sqrt(a)

# 计算正弦值
sin_a = np.sin(a)

# 计算平均值
mean_a = np.mean(a)

print(sqrt_a)
print(sin_a)
print(mean_a)

2. Pandas 简介

Pandas 是一个强大的数据分析库,它提供了方便的数据结构(如 DataFrame)来高效地处理和分析数据,尤其适用于结构化数据。

2.1 安装 Pandas

同样,使用 pip 安装 Pandas:

bash 复制代码
pip install pandas
2.2 Pandas 的主要功能
  • Series:一维数据结构,类似于列表或一维数组。
  • DataFrame:二维数据结构,类似于 Excel 表格或 SQL 数据表。
  • 数据读写:支持读取 CSV、Excel、SQL 数据库等格式的数据。
2.3 创建 Pandas 数据结构

Pandas 的两种主要数据结构是 SeriesDataFrameSeries 是一维数组,DataFrame 是二维表格。

示例:创建 Series 和 DataFrame

python 复制代码
import pandas as pd

# 创建 Series
data_series = pd.Series([10, 20, 30, 40])

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

print(data_series)
print(data_frame)
2.4 数据读取与写入

Pandas 提供了简单的接口来读取和写入各种格式的数据,如 CSV、Excel、SQL 数据库等。

示例:读取 CSV 文件

python 复制代码
import pandas as pd

# 从 CSV 文件中读取数据
data_frame = pd.read_csv('data.csv')

# 显示前几行数据
print(data_frame.head())

# 写入数据到 CSV 文件
data_frame.to_csv('output.csv', index=False)
2.5 数据处理与操作

Pandas 提供了丰富的数据操作方法,包括筛选、排序、缺失值处理等。

示例:数据筛选与操作

python 复制代码
import pandas as pd

# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 35, 40],
        'Salary': [70000, 80000, 120000, 130000]}
data_frame = pd.DataFrame(data)

# 筛选年龄大于30的数据
filtered_data = data_frame[data_frame['Age'] > 30]

# 添加新列
data_frame['Bonus'] = data_frame['Salary'] * 0.1

# 缺失值处理
data_frame.fillna(0, inplace=True)

print(filtered_data)
print(data_frame)

3. NumPy 与 Pandas 的结合

NumPyPandas 常常结合使用,PandasDataFrame 数据结构内部就是基于 NumPy 的多维数组进行高效存储和操作的。

示例:将 NumPy 数组转为 Pandas DataFrame

python 复制代码
import numpy as np
import pandas as pd

# 创建 NumPy 数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 将 NumPy 数组转为 DataFrame
data_frame = pd.DataFrame(array, columns=['A', 'B', 'C'])

print(data_frame)

4. 小结

  • NumPy 是科学计算和数值处理的基础库,擅长多维数组和矩阵运算。
  • Pandas 是数据分析的强大工具,能够高效处理结构化数据。
  • 结合使用 NumPyPandas 可以实现数据的高效处理与分析,大大提升开发效率。

通过学习和掌握 NumPyPandas,你可以更轻松地应对数据分析和科学计算任务。

相关推荐
Learn-Python10 分钟前
MongoDB-only方法
python·sql
小途软件1 小时前
用于机器人电池电量预测的Sarsa强化学习混合集成方法
java·人工智能·pytorch·python·深度学习·语言模型
扫地的小何尚2 小时前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
A尘埃2 小时前
Numpy常用方法介绍
numpy
wanglei2007082 小时前
生产者消费者
开发语言·python
清水白石0082 小时前
《从零到进阶:Pydantic v1 与 v2 的核心差异与零成本校验实现原理》
数据库·python
昵称已被吞噬~‘(*@﹏@*)’~2 小时前
【RL+空战】学习记录03:基于JSBSim构造简易空空导弹模型,并结合python接口调用测试
开发语言·人工智能·python·学习·深度强化学习·jsbsim·空战
2501_941877983 小时前
从配置热更新到运行时自适应的互联网工程语法演进与多语言实践随笔分享
开发语言·前端·python
酩酊仙人3 小时前
fastmcp构建mcp server和client
python·ai·mcp
且去填词4 小时前
DeepSeek API 深度解析:从流式输出、Function Calling 到构建拥有“手脚”的 AI 应用
人工智能·python·语言模型·llm·agent·deepseek