python - 如何将 3D 数组转换为 python 中的 2D 数组列表?

标签 python list multidimensional-array svd

我想将 3D 数组(比如大小 = 3x3x4)转换为 3 (3x4) 个数组的列表。 else block 中的 3D 数组 Aif block 中的类型不同。

我试过 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 来修改此步骤。

最佳答案

numpy 数组是可迭代的,您可以轻松地将其转换为列表:

lst = list(A)

演示:

>>> arr = np.arange(8).reshape(2,2,2)
>>> arr
array([[[0, 1],
        [2, 3]],

       [[4, 5],
        [6, 7]]])
>>> list(arr)
[array([[0, 1],
       [2, 3]]), array([[4, 5],
       [6, 7]])]

关于python - 如何将 3D 数组转换为 python 中的 2D 数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66495623/

相关文章:

algorithm - 二维数组中的二进制搜索

python - python中使用类方法修改对象的属性

java - 如何检查随机生成的数组中的每个 int 是否偶数,如果不是,则让它创建另一个随机数组?

python - OpenCV trackbar 断言失败错误

c# - 有没有更好的方法使用 C# 从列表中删除元素?

python - 字典检索或列表索引哪个更快?

list - 强制grails将字符串参数视为字符串的集合

arrays - Rust 中指向行的指针

Python 将宏添加到现有 XLSM

python - 线程本地是否意味着线程安全?