python 申请内存空间,用于创建多维数组

以三维数组为例

  • 先申请1个一维数组空间:
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类,不是严格意义的数组。(参考https://blog.csdn.net/fuzhuolin/article/details/80498371)

用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)


展开阅读全文

没有更多推荐了,返回首页