我想根据内轴拆分一个 n 维 numpy 数组。
我有一个形状数组 (6,150,29,29,29,1)
我想要一个数组列表 - [150 个形状数组 (6,29,29,29,1)]
我使用了 list(a)
,但这给了我一个轴 0 上的列表。
最佳答案
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)
关于python - Numpy 列出第二轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48873896/