个人备案做门户网站,国外校园网站建设,成都广告公司排名,外国炫酷网站网址NumPy 基础#xff1a;Python 科学计算的基石 【AI Study】第三天#xff0c;NumPy 【AI Study】8-1#xff0c;同NumPy类似的类库【AI Study】8-2#xff0c;知识图谱【AI Study】8-3#xff0c;基础知识【AI Study】8-4#xff0c;核心功能【AI Study】8-5#xff0c;…NumPy 基础Python 科学计算的基石 【AI Study】第三天NumPy 【AI Study】8-1同NumPy类似的类库【AI Study】8-2知识图谱【AI Study】8-3基础知识【AI Study】8-4核心功能【AI Study】8-5高级应用【AI Study】8-6最佳实践【AI Study】8-7进阶学习【AI Study】8-8实用技巧 文章要点
NumPy 的安装和环境配置方法ndarray 数组对象的核心概念和创建方法数组的基本属性和数据类型详解数组的基础操作索引、切片、变形和拼接实用的代码示例和最佳实践
引言
NumPyNumerical Python是 Python 科学计算的基础库它提供了高性能的多维数组对象和用于处理这些数组的工具。作为数据科学、机器学习和科学计算的基础掌握 NumPy 对于 Python 开发者来说至关重要。本文将深入探讨 NumPy 的基础知识帮助读者快速入门并掌握核心概念。
1. 安装与环境配置
1.1 安装 NumPy
NumPy 的安装非常简单可以通过 pip 包管理器完成
pip install numpy对于科学计算环境建议使用 Anaconda 发行版它已经预装了 NumPy 和其他科学计算包
conda install numpy1.2 导入 NumPy
在 Python 代码中我们通常使用以下方式导入 NumPy
import numpy as np这是 Python 社区的标准做法使用 np 作为别名可以让我们更简洁地调用 NumPy 函数。
2. 数组基础
2.1 ndarray 对象
NumPy 的核心是 ndarrayn-dimensional array对象它是一个多维数组所有元素都是相同类型的。让我们看看如何创建数组
# 从列表创建数组
arr1 np.array([1, 2, 3, 4, 5])
print(从列表创建的数组:, arr1)# 创建二维数组
arr2 np.array([[1, 2, 3], [4, 5, 6]])
print(二维数组:\n, arr2)2.2 使用特殊函数创建数组
NumPy 提供了多种创建数组的函数
# 创建全零数组
zeros np.zeros((3, 3))
print(全零数组:\n, zeros)# 创建全一数组
ones np.ones((2, 4))
print(全一数组:\n, ones)# 创建等差数列
arange np.arange(0, 10, 2)
print(等差数列:, arange)# 创建等间距数组
linspace np.linspace(0, 1, 5)
print(等间距数组:, linspace)# 创建随机数组
random_arr np.random.rand(3, 3)
print(随机数组:\n, random_arr)2.3 数组属性
NumPy 数组具有多个重要的属性
arr np.array([[1, 2, 3], [4, 5, 6]])print(数组形状:, arr.shape) # 输出: (2, 3)
print(数组维度:, arr.ndim) # 输出: 2
print(数组大小:, arr.size) # 输出: 6
print(数组类型:, arr.dtype) # 输出: int64
print(每个元素字节数:, arr.itemsize) # 输出: 8
print(总字节数:, arr.nbytes) # 输出: 482.4 数据类型dtype
NumPy 支持多种数据类型可以根据需要指定
# 指定数据类型创建数组
arr_int np.array([1, 2, 3], dtypenp.int32)
arr_float np.array([1.1, 2.2, 3.3], dtypenp.float64)
arr_complex np.array([12j, 34j], dtypenp.complex128)print(整数数组:, arr_int.dtype) # 输出: int32
print(浮点数组:, arr_float.dtype) # 输出: float64
print(复数数组:, arr_complex.dtype) # 输出: complex1283. 数组操作基础
3.1 索引与切片
NumPy 数组支持多种索引和切片操作
arr np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 基本索引
print(第一个元素:, arr[0, 0]) # 输出: 1
print(最后一行:, arr[-1]) # 输出: [7 8 9]# 切片操作
print(前两行:, arr[:2]) # 输出: [[1 2 3], [4 5 6]]
print(中间列:, arr[:, 1]) # 输出: [2 5 8]# 布尔索引
mask arr 5
print(大于5的元素:, arr[mask]) # 输出: [6 7 8 9]3.2 数组变形
NumPy 提供了多种数组变形方法
arr np.array([1, 2, 3, 4, 5, 6])# 重塑数组
reshaped arr.reshape(2, 3)
print(重塑后的数组:\n, reshaped)# 展平数组
flattened arr.flatten()
print(展平后的数组:, flattened)# 转置数组
transposed reshaped.T
print(转置后的数组:\n, transposed)3.3 数组拼接与分割
数组的拼接和分割操作
arr1 np.array([1, 2, 3])
arr2 np.array([4, 5, 6])# 水平拼接
hstack np.hstack((arr1, arr2))
print(水平拼接:, hstack)# 垂直拼接
vstack np.vstack((arr1, arr2))
print(垂直拼接:\n, vstack)# 数组分割
arr np.array([1, 2, 3, 4, 5, 6])
split_arr np.split(arr, 3)
print(分割后的数组:, split_arr)3.4 数组复制与视图
理解数组的复制和视图操作
arr np.array([1, 2, 3, 4, 5])# 视图浅拷贝
view arr.view()
view[0] 10
print(原数组:, arr) # 输出: [10 2 3 4 5]
print(视图:, view) # 输出: [10 2 3 4 5]# 深拷贝
copy arr.copy()
copy[0] 20
print(原数组:, arr) # 输出: [10 2 3 4 5]
print(深拷贝:, copy) # 输出: [20 2 3 4 5]最佳实践
始终使用 np.array() 创建数组而不是直接使用 Python 列表在创建大型数组时优先使用 NumPy 的特殊函数如 zeros(), ones()注意数组的数据类型避免不必要的类型转换使用视图操作时要小心确保理解其共享内存的特性在进行数组操作时优先使用 NumPy 的向量化操作而不是循环
总结
本文介绍了 NumPy 的基础知识包括安装配置、数组创建、属性访问、基本操作等内容。掌握这些基础知识对于后续深入学习 NumPy 的高级特性和应用至关重要。在实际应用中建议多练习这些基础操作并注意观察数组的内存使用和性能表现。
参考资源
NumPy 官方文档NumPy 快速入门指南Python 数据科学手册