NumPy:ndarray 数组属性
在使用 NumPy 进行科学计算或数据分析时数组对象不仅存储数据本身还包含描述数组结构与内存布局的信息这些信息被称为数组属性array attributes。通过这些属性我们可以了解数组的维度结构、元素数量、数据类型以及内存占用情况从而更好地理解数组的内部结构与计算行为。NumPy 的数组属性主要通过 ndarray 对象的属性attributes提供访问接口。与函数不同这些属性通常不需要调用而是直接读取。例如arr.shapearr.dtype按照功能划分NumPy 的数组属性通常可以分为四类1结构属性2类型属性3大小与内存属性4底层布局属性一、结构属性结构属性用于描述数组的维度结构与形状信息。shape返回数组在每个维度上的长度元组。ndarray.shape示例import numpy as np a np.array([[1,2,3], [4,5,6]]) print(a.shape)输出(2, 3)表明这是一个 2 行 3 列的矩阵。ndim返回数组的维度数整数。ndarray.ndim示例a np.array([[1,2,3], [4,5,6]]) print(a.ndim)输出2表明该数组是二维数组。size返回数组中包含的元素总数整数。ndarray.size示例a np.array([[1,2,3], [4,5,6]]) print(a.size)输出6说明元素数量 所有维度长度的乘积。二、类型属性类型属性用于描述数组中元素的数据类型。dtype返回数组元素的数据类型NumPy 的 dtype 对象。ndarray.dtype示例a np.array([1,2,3]) print(a.dtype)输出int64说明NumPy 使用统一的数据类型系统dtype不同于 Python 的动态对象类型。详情请参阅《NumPydtype 数据类型》itemsize返回每个元素所占的字节数整数。ndarray.itemsize示例a np.array([1,2,3], dtypenp.int32) print(a.itemsize)输出4表明 int32 类型占用 4 字节。三、大小与内存属性这些属性用于描述数组整体的存储规模。nbytes返回数组元素所占的总字节数整数。ndarray.nbytes示例a np.array([1,2,3,4], dtypenp.int32) print(a.nbytes)输出16说明nbytes size × itemsize。四、底层布局属性NumPy 数组在内存中以字节序列的形式存储并通过 stride 机制描述各维度的访问步长。某些数组如切片或转置结果在内存中可能并不是连续存储。以下属性用于描述数组在内存中的布局方式。strides数组在各维度上的步长stride。返回一个元组表示在每个维度上移动一个索引单位时需要跨越的字节数。ndarray.strides示例a np.array([[1,2,3], [4,5,6]]) print(a.strides)示例输出(24, 8)这表明沿第 0 个维度行方向移动一个元素时需要跨越 24 字节沿第 1 个维度列方向移动一个元素时需要跨越 8 字节。T返回数组的转置结果transpose通常返回一个视图而不是新的数据副本。ndarray.T示例a np.array([[1,2,3], [4,5,6]]) print(a.T)输出[[1 4] [2 5] [3 6]]说明转置操作交换数组的行与列。五、数组属性综合示例示例import numpy as np a np.array([[10,20,30], [40,50,60]], dtypenp.int32) print(shape:, a.shape)print(ndim:, a.ndim)print(size:, a.size)print(dtype:, a.dtype)print(itemsize:, a.itemsize)print(nbytes:, a.nbytes)print(strides:, a.strides)输出示例shape: (2, 3)ndim: 2size: 6dtype: int32itemsize: 4nbytes: 24strides: (12, 4) 小结NumPy 数组对象提供了一组属性用于描述数组的结构、类型以及内存布局。结构属性shape、ndim、size用于描述数组维度类型属性dtype、itemsize用于说明元素类型大小属性nbytes用于表示内存占用底层属性strides、T反映数组在内存中的布局与视图关系。理解这些属性有助于更深入地掌握 NumPy 数组的内部结构与计算机制。“点赞有美意赞赏是鼓励”
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2413154.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!