chauncygu 2019-12-02
以三维数组为例
先申请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类,不是严格意义的数组。
用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)