【问题标题】:Numpy to list over 2nd axisNumpy 列出第二个轴
【发布时间】:2018-02-19 20:44:40
【问题描述】:

我想根据内部轴拆分一个 n-d numpy 数组。

我有一个形状数组(6,150,29,29,29,1)

我想要一个数组列表 - [150 arrays of shape (6,29,29,29,1)]

我使用了list(a),但这给了我一个轴 0 上的列表。

【问题讨论】:

    标签: python arrays numpy split


    【解决方案1】:

    arr.transpose(1,0,2,3,4,5)np.swapaxes(arr,0,1) 将 150 维度放在首位。然后你可以使用list

    或者你可以使用列表推导

    [a[:,i] for i in range(150)]
    

    转置更好一些

    In [28]: timeit list(arr.transpose(1,0,2,3,4,5))
    47.7 µs ± 47.1 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    In [29]: timeit [arr[:,i] for i in range(150)]
    88.7 µs ± 22.2 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    In [32]: timeit list(np.swapaxes(arr,0,1))
    49.2 µs ± 51.1 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2016-05-25
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2018-06-14
      • 1970-01-01
      • 2020-10-29
      相关资源
      最近更新 更多