Python 创建多维数组的内存申请与实现方法
本文介绍在 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 申请内存空间以创建多维数组的实例介绍完毕,希望能为读者提供参考,并欢迎大家继续支持本站获取更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













