如何使用numpy.ndarray合并特定的轴而不会产生歧义

时间:2013-10-22 05:00:02

标签: python numpy reshape

基本上我想重塑由numpy.ndarray代表的张量。

例如,我想做这样的事情(乳胶符号)

A_ {i,j,k,l,m,n,p} - > A_ {I,JK,LM,NP}

A_ {i,j,k,l,m,n,p} - > A_ {IJ,K,L,M,NP}

其中A是ndarray。 i,j,k,...表示原始轴。

所以新轴2成为轴2和3等的“扁平”版本。如果我只是使用numpy.reshape,我不认为它知道我想要合并的轴,所以它看起来很模糊和错误易发生。

有没有任何巧妙的方法来做这个而不是手动创建另一个ndarray?

1 个答案:

答案 0 :(得分:4)

使用reshape永远不会模棱两可。它不会改变数据的内存布局。

始终使用由形状确定的步幅完成索引。 最右边的轴有步幅1,而左边的轴有右边的尺寸乘积给出的步幅。

这对你意味着:只要你收集相邻的轴,它就会做“正确”的事情。