「Python数据科学」多维数组长啥样?ndarray的核心属性来帮忙

南宫理的日志录 2024-12-19 09:29:17
引言

当我们读取数据创建了一个NumPy的多维数组时,很多时候,我们并不能直观了解这个多维数组对象的内部存储结构。为了能够更好地对多维数组对象进行操作,了解多维数组对象的结构是很有必要的,好在NumPy多维数组中存储了几个描述数组结构和内容的核心属性。本文就来聊一下ndarray中的这些属性。

本文的内容有:

1、shape属性

2、dtype属性

3、ndim属性

4、size属性

5、itemsize属性

6、nbytes属性

7、T属性

shape属性

要了解一个ndarray的结构,形状shape属性,可以说是最为关键的一个属性。尤其在进行矩阵运算、神经网络构建、图像处理等领域,都需要首先关注数组的形状。

ndarray对象的shape属性中存储的是一个元组,元组中的每一个元素是对应维度的大小。

dtype属性

了解一个数组,除了数组的形状外,另一个核心的属性,就是数组中元素的数据类型了。因为,要对数组进行操作,不同的数据类型在操作上会有些细微的差异。

ndarray的属性dtype返回元素的数据类型,NumPy支持多种数据类型,比如整型、浮点型、布尔型等。前面在创建ndarray时,可以看到若不指定dtype属性,NumPy会根据提供的数据自动推断数据类型。

在笔者的系统环境中,整型的默认dtype为'int64',浮点型的默认dtype为'float64'。

以下是一些常见的dtype取值及其描述:

需要说明的是,在创建ndarray时,如果要指定元素数据类型,我们可以通过numpy.int64的方式进行指定,也可以使用对应的字符串形式,比如'int64'。

字符串形式还有对应的简写方式,这里就不一一列举,可以自行查阅相关文档。

ndim属性

除了shape和dtype属性之外,其他的属性,基本可以从这两个属性进行计算推到出来。

ndim属性,返回的是数组的维数(也称之为数组的轴数),是一个整数。等价于shape属性的长度。

size属性

size属性返回的是数组中元素的总个数,即数组中所谓维度的大小的乘积,也是可以由shape属性推导出来的。

itemsize属性

itemsize属性,描述的是数组中每个元素所占用的字节数,以字节为单位。所以,该属性是可以通过dtype属性进行推导的。

从这里,也可以看出,dtype字符串缩写的形式,后面的数字,其实是描述的字节数。

nbytes属性

nbytes属性返回的是数组占用的总字节数,也就是size乘以itemsize。

T属性

T属性,其实用得相对较少,它描述的是一个矩阵的转置的概念。对一个矩阵进行转置,可以简单理解为行变列、列变行。

总结

本文分别介绍了多维数组ndarray对象中的shape、dtype、ndim、size、itemsize、nbytes、T等属性。并对各个属性的含义及用法通过代码进行了演示说明。需要指出的是,shape和dtype是最核心的两个属性,其他属性均可以基于这两个属性进行计算推导。

以上就是本文的全部内容,感谢您的拨冗阅读,希望您对ndarry的结构有了更进一步的认识。

0 阅读:0

南宫理的日志录

简介:深耕IT科技,探索技术与人文的交集