2. NumPy数组属性详解:形状、维度与数据类型
NumPy数组属性详解:形状、维度与数据类型
在第一篇NumPy入门与数组创建中,我们学习了 NumPy 数组的创建方法。本篇将进一步深入,重点介绍 NumPy 数组的核心属性,包括 形状(shape)、维度(ndim)、元素总数(size)、数据类型(dtype) 以及 内存占用。掌握这些属性,有助于我们理解数组结构,并在数据处理时快速定位问题。
1. 数组的基本属性
1.1 数组形状(shape)
shape
表示数组在每个维度上的长度,返回一个 元组。
import numpy as npa = np.array([[1, 2, 3],[4, 5, 6]])
print(a.shape) # (2, 3) -> 2行3列
1.2 数组维度(ndim)
ndim
表示数组的维数(轴的个数)。
print(a.ndim) # 2 -> 二维数组
b = np.array([1, 2, 3, 4])
print(b.ndim) # 1 -> 一维数组
1.3 元素总数(size)
size
表示数组中元素的总个数。
print(a.size) # 6 -> 2*3
2. 数据类型(dtype)
NumPy 的数组必须是 同一种数据类型,这保证了存储与运算的高效性。
c = np.array([1, 2, 3], dtype=np.int32)
print(c.dtype) # int32d = np.array([1.2, 3.4, 5.6])
print(d.dtype) # float64
2.1 常见的数据类型
int32
:32位整数int64
:64位整数(默认)float32
:单精度浮点数float64
:双精度浮点数(默认)bool
:布尔类型complex
:复数类型
2.2 类型转换(astype)
可以用 astype()
转换数据类型:
arr = np.array([1.5, 2.7, 3.9])
print(arr.astype(int)) # [1 2 3]
注意:类型转换会生成一个 新数组,原数组不会改变。
3. 数组的内存占用
3.1 itemsize
每个元素占用的字节数。
x = np.array([1, 2, 3], dtype=np.int32)
print(x.itemsize) # 4 -> int32 占4字节
3.2 nbytes
整个数组占用的字节数。
print(x.nbytes) # 12 -> 3个元素 * 4字节
4. *数组形状变换
在后续的 数组重塑与操作 中,reshape
和 ravel
等方法非常常用。
a = np.arange(12)
print(a.shape) # (12,)
b = a.reshape(3, 4) # 变成3行4列
print(b.shape) # (3, 4)
注意:
reshape
不会改变原数组的数据,只是改变了“视图”的形状。
5. 小结
通过本篇学习,我们对 NumPy 数组的核心属性有了清晰认识。
形状(shape)描述了数组的行列结构,维度(ndim)揭示了数组的层级,元素总数(size)帮助我们快速把握规模,数据类型(dtype)确保存储与运算的统一性,而内存占用(itemsize 与 nbytes)则反映了数组的存储成本。
理解这些属性后,我们就能更清晰地掌握数组的结构,为后续的 索引与切片、数学运算 打好基础。
上一篇:1. NumPy入门与数组创建
下一篇:3. NumPy 文件数据读写:高效的数据存储与加载