numpy列出第二个轴

发布于 2021-01-29 15:05:10

我想基于内轴拆分nd numpy数组。

我有各种各样的形状 (6,150,29,29,29,1)

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

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

关注者
0
被浏览
80
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    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)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看