【问题标题】:numpy 3D array reshape/flattern to 1D array based on row ordernumpy 3D 数组根据行顺序重塑/展平为 1D 数组
【发布时间】:2021-10-25 18:04:35
【问题描述】:

我有一个 3D NumPy 数组

x = np.array([[[0, 0, 0, 0],
               [1, 1, 1, 1],
               [2, 2, 2, 2]],

              [[0, 0, 0, 0],
               [1, 1, 1, 1],
               [2, 2, 2, 2]]])

如果我想通过取x[0] 的第 n°0 行、x[1] 的第 n°0 行、x[0] 的第 n°1 行、@987654325 的第 n°1 行来将 3D 数组展平为 1D 数组@,x[0]的第n°2行,x[1]的第n°2行,得到如下布局:

[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2]

我怎样才能做到这一点?试图重塑、展平,但都没有奏效。

【问题讨论】:

    标签: python arrays numpy 3d reshape


    【解决方案1】:

    您可以堆叠然后展平数组:

    >>> np.stack(x, axis=1).flatten()
    array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2])
    

    【讨论】:

    • 工作就像一个魅力!谢谢。
    猜你喜欢
    • 2020-04-22
    • 2018-03-18
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 2021-02-25
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多