对于python项目,我经常发现自己正在重塑和重新排列n维numpy数组.但是,我很难确定如何处理问题,可视化重塑方法结果的结果,并且知道我的解决方案是有效的.
在遇到这样的问题的那一刻,我的策略是启动ipython,加载一些样本数据并进行反复试验,直到找到transpose()s,reshape()和swapaxes()的组合.获得了理想的结果.它完成了工作,但没有真正了解正在发生的事情,并且经常产生难以维护的代码.
所以,我的问题是找到一个策略.你怎么处理这样的问题?当你必须以所需的格式塑造它时,你如何想象你头脑中的ndarray?你是如何做出正确的行动的?
为了使回答更具体,一个例子:
假设您要重塑以下3d数组
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
Run Code Online (Sandbox Code Playgroud)
到2d阵列,其中第三维的第一列放在第一,第二列放在第二,......等
结果应如下所示:
array([[ 0, 9, 18, 3, 12, 21, 6, 15, 24],
[ 1, 10, 19, 4, 13, 22, 7, 16, 25],
[ 2, 11, 20, 5, 14, 23, 8, 17, 26]])
Run Code Online (Sandbox Code Playgroud)
PS.关于这个主题的任何阅读材料都会很棒!