Python 创建多维数组的内存申请与实现方法

苏见山
苏见山
发布时间:2026-10-13| 3人浏览过
原创

本文介绍在 Python 中创建多维数组的两种主要方式:使用嵌套列表手动申请内存空间,以及利用 numpy 库高效创建。通过三维数组实例,详细解析了从一维扩展到多维的逻辑,并对比了 np.array、np.zeros 及 np.ones 等函数的用法与参数设置,帮助开发者理解底层内存分配与高效数组操作的区别。

基于列表的多维数组内存申请

以三维数组为例进行说明

首先,需要申请一维数组的空间


mat = [None]*d1

其中,d1 表示第一维的长度

接着,将 mat 中的每个元素扩展为第二维的长度


for i in range(len(mat)):

  mat[i][j] = [None]*d2

同理,将 mat 中每个元素进一步扩展为第三维的大小


for i in range(len(mat)):
  for j in range(len(mat[0]):
    mat[i][j] = [None]*d3

需要注意的是,上述过程创建的“数组”实际上是 list 类对象,并非严格意义上的数组结构

使用 numpy 创建多维数组

若使用 numpy array 创建形状为 2*3*4 的数组

原始方法

先创建一个包含 2 个元素(对应第一维)的一维数组,然后将 3*4 的二维数组嵌入到这 2 个元素的位置中


x = np.array([ [3*4数组] , [3*4数组] ])

类似地

x = np.array([ [ [4个元素的一维数组], [4个元素的一维数组], [4个元素的一维数组]] , [ [4个元素的一维数组], [4个元素的一维数组], [4个元素的一维数组]] ])

其他常用的数组创建函数

使用其他辅助函数


np.zeros((2,3,4))    #参数为一个元祖(2,3,4)


np.zeros_like( anotherArray )   #创建与anotherArray 同维度的数组,不复制anotherArray 的元素,以0填充.

类似的函数还有

np.ones, np.ones_like

np.empty, np.empty_like

np.eye(n)

以上关于 Python 申请内存空间以创建多维数组的实例介绍完毕,希望能为读者提供参考,并欢迎大家继续支持本站获取更多技术内容。

相关标签:

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

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 算法库。