NumPy 数组属性
文章目录
- NumPy 数组属性
- 一、基础属性
- 1. shape - 数组维度
- 2. ndim - 数组维度数
- 3. size - 元素总数
- 4. dtype - 数据类型
- 二、内存相关属性
- 1. itemsize - 单个元素字节大小
- 2. nbytes - 数组总内存占用
- 三、高级属性
- 1. strides - 跨距(每个维度前进的字节数)
- 2. flags - 内存布局信息
- 3. T - 转置视图(无需复制数据)
- 四、特殊数组属性
- 1. real & imag - 复数数组的实部/虚部
- 五、属性修改技巧
- 1. 改变形状(不复制数据)
- 2. 类型转换(创建新数组)
- 六、属性关系总结
- 七、实用场景
一、基础属性
1. shape - 数组维度
import numpy as np
arr = np.array([[1,2,3], [4,5,6]])
print(arr.shape)
2. ndim - 数组维度数
print(arr.ndim)
3. size - 元素总数
print(arr.size)
4. dtype - 数据类型
print(arr.dtype)
二、内存相关属性
1. itemsize - 单个元素字节大小
float_arr = np.array([1.0, 2.0], dtype=np.float32)
print(float_arr.itemsize)
2. nbytes - 数组总内存占用
print(float_arr.nbytes)
三、高级属性
1. strides - 跨距(每个维度前进的字节数)
matrix = np.array([[0,1,2], [3,4,5]], dtype=np.int16)
print(matrix.strides)
2. flags - 内存布局信息
print(matrix.flags)

3. T - 转置视图(无需复制数据)
print(arr.T.shape)
四、特殊数组属性
1. real & imag - 复数数组的实部/虚部
complex_arr = np.array([1+2j, 3+4j])
print(complex_arr.real)
print(complex_arr.imag)
五、属性修改技巧
1. 改变形状(不复制数据)
arr.shape = (3, 2)
print(arr)
2. 类型转换(创建新数组)
arr_float = arr.astype(np.float32)
print(arr_float.dtype)
六、属性关系总结
属性名 | 计算公式 | 示例数组(shape=(2,3)) |
---|
size | np.prod(shape) | 2×3=6 |
nbytes | size * itemsize | 6×4=24(int32类型) |
strides | (itemsize*shape[1], itemsize) | (12, 4) → 对shape(2,3)的int32数组 |
七、实用场景
1. 调试维度不匹配错误 → 使用 shape 快速验证数组结构
2. 优化内存占用 → 通过 dtype 和 nbytes 选择合适数据类型
3. 处理图像数据 → 用 reshape 转换(height, width, channels)格式
4. 科学计算 → 用 real/imag 处理复数信号数据