我希望将一个3D数组(比如大小为3x3x4)转换为3个3x4的数组列表。
else块中的3D数组A与if块中的类型不同。
我尝试过tolist()函数,但它将3D数组转换为列表的列表,结果并不理想。
X = np.random.randn(3, 3, 3)
for R in range(1,10):
N = len(X.shape)
B = ()
C = []
for i in range(N):
B += svd(X[i])
C.append(B[3*i])
C = np.array(C)
if R <= np.shape(C)[2]:
A = C[:,:,:R]
else:
A = np.concatenate((C[:,:,:np.shape(C)[2]],np.zeros((3,3,1))),axis=2)
理想情况下,
A = [np.random.randn(In, R) for In in X.shape]
。
但我正在修改这一步骤,将X的左奇异向量赋值给A。