目录
3. 读 / 写硬盘上基于数组的数据集的工具 提供专门用于处理数组格式数据的 I/O 工具
4. 线性代数运算、傅里叶变换和随机数生成的功能 线性代数运算
5. 将 C、C++、Fortran 代码集成到 Python 的工具
1) 作为算法间传递数据的容器 在数据分析流程中,不同算法(如数据清洗、特征工程、建模预测等环节的算法)需要频繁传递数据。
2)对数值型数据的高效处理优势 相较于 Python 内置的数据结构(如列表),NumPy 数组针对数值型数据进行了深度优化:
3)与低级语言库的无缝交互 由 C、Fortran 等低级语言编写的科学计算库(这些语言在数值计算上具有天然的速度优势)
四、scikit-learn是一个简单有效的数据挖掘和数据分析工具,可以供用户在各种环境下重复使用。
更多请扫wx,关注"智简达"
一、numpy
NumPy 作为 Python 科学计算的基础包,提供的各项功能从数据存储、运算到扩展集成,构成了高效处理数值计算任务的核心工具集,具体解释如下:
1. 快速高效的多维数组对象 ndarray 定义
ndarray(N-dimensional array)是 NumPy 的核心数据结构,是一个存储同类型元素的多维数组。 特点:
- 同质性:数组中所有元素必须是相同数据类型(如整数、浮点数),保证内存存储高效。
- 多维性:支持 1 维(向量)、2 维(矩阵)乃至更高维的数组,可灵活表示复杂数据结构(如时间序列、图像像素矩阵等)。
- 高性能:基于连续内存块存储,配合预编译的底层代码(C 语言实现),大幅提升数据访问和运算速度,远超 Python 原生列表。
2. 对数组执行元素级计算和直接对数组执行数学运算的函数
- 元素级计算:无需循环即可对数组中每个元素执行相同操作(如加减乘除、平方、取对数等),例如np.add(a, b)可直接对数组a和b的对应元素求和。
- 数学运算函数:提供丰富的内置数学函数,覆盖基础运算(如np.sum求和、np.mean求均值)、三角函数(如np.sin、np.cos)、指数对数(如np.exp、np.log)等,支持直接对整个数组批量计算,避免手动编写循环,提升效率和代码简洁性。
3. 读 / 写硬盘上基于数组的数据集的工具 提供专门用于处理数组格式数据的 I/O 工具
支持将 ndarray 数组直接保存到硬盘或从硬盘读取,例如:
- np.save()和np.load():以二进制格式快速存储和加载数组,保留数据类型和维度信息,适合大规模数组的持久化。
- np.savetxt()和np.loadtxt():将数组保存为文本文件(如 CSV)或从文本文件读取,方便与其他系统交换数据。 相比 Python 内置文件操作,这些工具针对数组优化,处理速度更快,尤其适合大型数据集。
4. 线性代数运算、傅里叶变换和随机数生成的功能 线性代数运算
- 通过np.linalg模块提供矩阵乘法、求逆、特征值分解、行列式计算等功能(如np.dot()实现矩阵乘法,np.linalg.inv()求矩阵逆),是机器学习、图形学等领域的基础。
- 傅里叶变换:通过np.fft模块实现快速傅里叶变换(FFT)及其逆变换,用于信号处理(如音频、图像降噪)、频谱分析等场景。
- 随机数生成:通过np.random模块生成各种概率分布的随机数(如正态分布、均匀分布),可用于模拟实验、抽样、初始化模型参数等。
5. 将 C、C++、Fortran 代码集成到 Python 的工具
- 提供numpy.ctypeslib、numpy.distutils等工具,支持将高性能的 C/C++/Fortran 代码(这些语言在数值计算上比 Python 更快)封装为 Python 可调用的接口。
- 作用:当 Python 原生代码(包括 NumPy)无法满足极致性能需求时,可通过集成底层语言代码进一步优化计算效率,兼顾 Python 的易用性和底层语言的高性能。