Numpy数组属性与类型转换:ndim、shape、dtype、astype详解

周叙
周叙
发布时间:2026-10-14| 10人浏览过
原创

本文深入解析Numpy数组的四个核心属性与方法:ndim用于获取数组维度数,shape返回各维度大小的元组,dtype标识数据类型(如int32、float64),astype实现类型转换。内容涵盖一维至多维数组的shape理解,以及整型、浮点型、字符串间的类型转换规则与截断机制,帮助开发者准确掌握Numpy基础操作。

Numpy数组核心属性与方法概述

本文旨在详细解析Numpy数组中四个关键概念与方法的差异与应用:ndim、shape、dtype以及astype。

ndim:获取数组维度数

1. ndim属性


ndim属性用于返回数组的维度数量。其返回值是一个单一的整数,该整数直接代表了数组的维度层级。

shape:解析各维度大小元组

2. shape属性


shape属性返回一个元组,该元组包含了数组在各个维度上的大小信息。

针对一维数组,常有人疑惑为何结果不是(1, 6)。这是因为当arr1的ndim为1时,shape元组中仅包含一个元素,即该维度的长度。

对于二维数组,shape元组中的第一个数值代表行数,第二个数值代表列数。由于二维数组的ndim为2,因此返回包含两个数值的元组。

三维数组的结构较为复杂,不易直观判断。通过打印arr3并观察其结构,可以更清晰地理解其shape构成。


首先观察最外层的中括号,它包含两个子数组:[[1,2,3],[4,5,6]]和[[7,8,9],[10,11,12]]。若将这两个子数组分别视为A和B,则整体结构可简化为[A, B]。若A和B仅为单个数字,其ndim为2,这对应shape元组的第一个数值。然而,A和B本身是形状为(2, 3)的数组。综合来看,arr3的shape即为(2, 2, 3)。

基于上述逻辑进行类比,可以推导出四维、五维乃至更高维度数组的shape表示方法。

dtype:识别数组数据类型

3. dtype属性


dtype是一个用于描述数组数据类型的对象,它返回该数组的具体数据类型。由于示例图中的数据均为整数,因此返回结果为int32。若数组中包含带有小数点的数据,则返回结果为float64。

这里常有一个疑问:在Python中,整数类型通常表示为int,浮点数表示为float,为何Numpy中显示的是int32和float64?

解答在于:int32和float64是Numpy库内部定义的一套特定数据类型标准,与Python内置类型有所区别。

astype:执行数据类型转换

4. astype方法


astype方法用于转换数组的数据类型。

将int32类型转换为float64类型是完全可行的,操作顺利。

将float64类型转换为int32类型时,Numpy会直接截断小数部分,仅保留整数部分。

对于string_类型转换为float64,如果字符串数组中的元素全部表示数字,则可以使用astype将其转换为数值类型。


需要注意的是,float是Python的内置类型,但Numpy也能识别并使用它。Numpy会将Python内置类型自动映射到等价的Numpy dtype上。

以上是对这四个方法基本用法的介绍,后续若有新的发现或应用场景,将再做补充。

至此,关于Numpy中ndim、shape、dtype、astype的用法详解已介绍完毕。如需了解更多相关内容,欢迎搜索本站过往文章或继续浏览后续文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。