【发布时间】:2021-06-04 07:34:45
【问题描述】:
我想将 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。
【问题讨论】:
-
这听起来像是 XY 问题。 list 可以为您做哪些 numpy 不能做的事情?
标签: python list multidimensional-array svd