2. Numpy中的ndarray

《玩转Numpy计算库》视频课程详细介绍了NumPy中的核心对象ndarray。ndarray提供了高效的多维数组操作,允许去除元素间的循环运算,提升运算速度。数组对象是同质的,每个元素占用相同大小的内存,并通过数据类型对象dtype描述。数组标量(arrayscalar)在返回数组元素时使用,保持与数组类型的一致性。ndarray的存储在内存中是连续的,支持行优先或列优先的存储方式。
摘要由CSDN通过智能技术生成

《玩转Numpy计算库》视频课程
《玩转Numpy计算库》视频课程链接:https://edu.csdn.net/course/detail/28656

ndarray

数组对象 (Array objects)

ndarray引入的原因

Python已有列表类型,为什么需要一个数组对象(类型)?

  1. 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据

  2. 设置专门的数组对象,经过优化,可以提升这类应用的运算速度

  3. 数组对象采用相同的数据类型,有助于节省运算和存储空间

NumPy提供了N维数组类型ndarray,它描述了同一类型的元素(items)的集合(collection)。

NumPy中定义的最重要的对象是称为ndarray的N维数组类型。 它描述了相同类型的元素的集合(collection)。 可以使用从零开始的索引来访问集合中的元素。

所有ndarray都是同质的(homogenous):每个item占用相同大小的内存块,并且所有块的解释方式都完全相同。 数组中各元素的解释方式由一个数据类型对象(称为dtype)指定。 除了基本类型(整数,浮点数等)之外,数据类型对象还可以表示数据结构。

ndarray的内部构成:

ndarray是一个多维数组对象,包括:

• 实际的数据

• 描述这些数据的元数据(数据维度、数据类型等)

下图显示了ndarray、数据类型对象(dtype)和数组标量(array scalar)类型之间的关系:

在这里插入图片描述

上面的概念图显示了用于描述数组中数据的三个基本对象之间的关系:

  1. ndarray本身
  2. 描述数组中一个固定大小元素的布局的数据类型对象(dtype)
  3. 访问数组的一个元素时返回的数组标量(array scalar)Python对象。

从数组中提取的一个元素(例如通过索引)由一个Python对象表示。该对象的类型是NumPy中内置的数组标量(array scalar)类型之一。

数组标量 (array scalar)

NumPy通常以数组标量(具有关联的dtype的标量)的形式返回数组的元素。数组标量与Python标量不同,但是在大多数情况下它们可以互换使用。

使用数组标量的主要优点是它们保留了数组类型(Python可能没有可用的匹配的标量类型,例如int16)。因此,使用数组标量可以确保数组和标量之间的行为相同,而与值是否在数组内部无关。

ndarray对象的存储:

ndarray对象由计算机内存中连续一维segment组成,并与将每个元素映射到内存块中某个位置的索引方案结合在一起。

内存块按行优先顺序(C style)列优先顺序(FORTRAN或MatLab style)保存元素。

(The memory block holds the elements in a row-major order (C style) or a column-major order (FORTRAN or MatLab style).)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bai666ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值