代码之家  ›  专栏  ›  技术社区  ›  Denver Dang

将1d列表展开回3d数组

  •  0
  • Denver Dang  · 技术社区  · 7 年前

    基本上,是否有一种方法来转换已经通过 numpy.ravel() 功能恢复到原来的3D形式?我知道尺寸,有人可能会问我为什么一开始不使用原始的3D阵列,而不是转换它——但这是有原因的。

    我只需要知道我是否可以从使用 努弗里 在3D阵列上。

    基本上,3D阵列是这样创建的:

    import numpy as np
    
    nx = 50
    ny = 40
    nz = 150
    
    x = np.linspace(1, 51, nx)
    y = np.linspace(1, 41, ny)
    z = np.linspace(1, 151, nz)
    
    x_bc = x[:, np.newaxis, np.newaxis]
    y_bc = y[np.newaxis, :, np.newaxis]
    z_bc = z[np.newaxis, np.newaxis, :]
    
    arr = x_bc + y_bc + z_bc
    

    不,我不能只是为了把它取回来,因为计算是在平均时间内完成的,然后在平均时间内转换成一维数组。所以这个数组中的数据与我实际想要转换回的数据不同。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Colonder    7 年前

    numpy.reshape

        2
  •  3
  •   DYZ    7 年前

    raveled = np.ravel(arr)
    new_arr = raveled.reshape(*arr.shape)