ITPub博客

首页 > 应用开发 > Python > Python 内存视图的 ndim 属性

Python 内存视图的 ndim 属性

原创 Python 作者:raptors 时间:2025-11-13 14:55:34 0 删除 编辑

# Python 内存视图的 ndim 属性


在 Python 中,`memoryview` 对象的 `ndim` 属性表示内存视图的维数(number of dimensions),即它所引用的内存是多维数组时的维度数量。


## 基本用法


`ndim` 是一个只读属性,返回一个整数,表示内存视图的维度:


```python

mv = memoryview(b'abc')

print(mv.ndim)  # 输出: 1


import array

arr = array.array('i', [1, 2, 3, 4])

mv = memoryview(arr)

print(mv.ndim)  # 输出: 1

```


## 多维数组示例


对于支持缓冲区协议的多维数组(如 NumPy 数组),`ndim` 会反映实际的维度:


```python

import numpy as np

https://zq.zhaopin.com/moment/73378482

https://zq-mobile.zhaopin.com/moment/73378482

https://zhiq.zhaopin.com/moment/73378482

https://zq.zhaopin.com/moment/73378479

https://zq-mobile.zhaopin.com/moment/73378479

https://zhiq.zhaopin.com/moment/73378479

https://zq.zhaopin.com/moment/73378470

https://zq-mobile.zhaopin.com/moment/73378470

https://zhiq.zhaopin.com/moment/73378470

https://zq.zhaopin.com/moment/73378465

https://zq-mobile.zhaopin.com/moment/73378465

https://zhiq.zhaopin.com/moment/73378465

https://zq.zhaopin.com/moment/73378460

https://zq-mobile.zhaopin.com/moment/73378460

https://zhiq.zhaopin.com/moment/73378460

https://zq.zhaopin.com/moment/73378422

https://zq-mobile.zhaopin.com/moment/73378422

https://zhiq.zhaopin.com/moment/73378422

https://zq.zhaopin.com/moment/73378417

https://zq-mobile.zhaopin.com/moment/73378417

https://zhiq.zhaopin.com/moment/73378417



arr = np.array([[1, 2], [3, 4]], dtype='i')

mv = memoryview(arr)

print(mv.ndim)  # 输出: 2

```


## 重要说明


1. 对于简单的一维字节对象(如 `bytes` 或 `bytearray`),`ndim` 总是 1

2. `ndim` 的值决定了其他属性如 `shape`、`strides` 的长度

3. 这个属性在检查内存视图的结构时很有用,特别是在处理多维数据时


## 与其他属性的关系


`ndim` 与内存视图的其他属性密切相关:

- `shape`: 一个长度为 `ndim` 的元组,表示每个维度的大小

- `strides`: 一个长度为 `ndim` 的元组,表示每个维度的步长(以字节为单位)

- `itemsize`: 单个元素的字节大小


```python

arr = np.array([[1, 2, 3], [4, 5, 6]], dtype='int32')

mv = memoryview(arr)

print(mv.ndim)    # 输出: 2

print(mv.shape)   # 输出: (2, 3)

print(mv.strides) # 输出: (12, 4) [因为每个int32是4字节,一行3个元素是12字节]

```


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/34366/viewspace-3101289/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-29

  • 博文量
    20
  • 访问量
    20448