全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Numpy数值计算基础

发布时间:2023-12-02 23:54:03
发布人:xqq

NumPy是用于数据科学计算的基础模块,不但能够完成科学计算的任务,而且能够被用作高效的多维数据容器,可用于存储和处理大型矩阵。NumPy 的数据容器能够保存任意类型的数据,这使得 NumPy 可以无缝并快速地整合各种数据。NumPy 本身并没有提供很多高级的数据分析功能。理解 NumPy 数组及数组计算有助于更加高效地使用诸如 pandas等数据处理工具。

Python 提供了一个 array 模块。array 和 list 不同,它直接保存数值,和C语言的一维数组比较类似。但是由于 Python 的 array 模块不支持多维,也没有各种运算函数,因此也不适合做数值运算。NumPy 的诞生弥补了这些不足。NumPy 提供了一种存储单一数据类型的多维数组-ndarray。

一、创建数组对象

NumPy 提供了两种基本的对象: ndarray( N-dimensionalArray Object)和 ufunc( UniversalFunction Object)。ndarray(下文统一称为数组)是存储单一数据类型的多维数组,而 ufunc则是能够对数组进行处理的函数。

1、数组属性

为了更好地理解和使用数组,在创建数组之前,了解数组的基本属性是十分有必要的。数组的属性及其说明如下表所示。

2、数组创建

NumPy提供的array函数可以创建一维或多维数组,其基本使用格式如下。

numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)

array函数主要参数及其说明如下表。

除了使用array函数创建数组之外,还可以使用arange函数创建数组。arange函数类似于Python自带的函数range,通过指定开始值、终值和步长来创建一维数组,创建的数组不含终值。arange函数的基本使用格式如下。

numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)

arange函数常用参数及其说明如下表。

linspace函数通过指定开始值、终值和元素个数来创建一维数组,默认设置包括终值,这一点需要和arange函数区分。linspace函数的基本使用格式如下。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

linspace函数的常用参数及其说明如下表。

logspace函数和linspace函数类似,它创建的是等比数列。logspace函数的基本使用格式如下。

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)

在logspace函数的参数中,除了base参数和linspace函数的retstep参数不同之外,其余均相同。

NumPy还提供了其他函数用于创建特殊数组,如zeros、eye、diag和ones函数等。

zeros函数:用于创建值全部为0的数组,即创建的数组值全部填充为0。

eye函数:用于生成主对角线上的元素为1,其他的元素为0的数组,类似单位矩阵。

diag函数:创建类似对角的数组,即除对角线外的其他元素都为0,对角线上的元素可以是0或其他值。

ones函数:用于创建元素全部为1的数组,即创建的数组元素全部填充为1。

3. 数组数据类型

在实际的业务数据处理中,为了更准确地计算结果,需要使用不同精度的数据类型。

NumPy极大程度地扩充了原生Python的数据类型。在NumPy中,所有数组的数据类型是同质的,即数组中的所有元素类型必须是一致的。将元素类型保持一致可以更容易确定该数组所需要的存储空间。

NumPy的基本数据类型及其取值范围如下表。

IT培训

相关文章

嵌入式培训课程:探索技术的无限可能

嵌入式培训课程:探索技术的无限可能

2023-12-12
web前端培训:vue实现双向数据绑定原理

web前端培训:vue实现双向数据绑定原理

2023-12-12
嵌入式开发:Linux系统编程的探索与实践

嵌入式开发:Linux系统编程的探索与实践

2023-12-12
Web前端:探索Web前端开发技术的新领域

Web前端:探索Web前端开发技术的新领域

2023-12-12

最新文章

python培训学校靠谱吗?为什么一定要选择千锋教育

python培训学校靠谱吗?为什么一定要选择千锋教育

2023-12-13
培训学校学java靠谱吗?为什么一定要选择千锋教育

培训学校学java靠谱吗?为什么一定要选择千锋教育

2023-12-13
网络安全哪个培训机构靠谱

网络安全哪个培训机构靠谱

2023-12-13
python培训机构可靠吗?为什么一定要选择千锋教育

python培训机构可靠吗?为什么一定要选择千锋教育

2023-12-13
在线咨询 免费试学 教程领取