Cal*_*xc1 3 python numpy numpy-einsum
一个python问题:我有一个np.einsum操作,我正在一对3d数组上做:
return np.einsum('ijk, ijk -> ik', input_array, self._beta_array)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是结果是2d; 该操作折叠'j'维度.我喜欢做的是让它保留'j'维度,类似于'keepdims'在np.sum函数中的工作方式.
我可以将结果包装在np.expand_dims中,但这对我来说似乎效率低下.我宁愿找到一些方法来调整einsum来输出我想要的东西.
这是真的吗?
我可以将结果包装好
np.expand_dims,但这对我来说似乎效率低下
在numpy中添加维度是最坏的O(ndim),所以基本上是免费的.至关重要的是,实际数据没有被触及 - 所有发生的事情都是元组.strides和.shape元组各得到一个额外的元素
现在没办法用einsum直接得到你想要的东西.
ijk, ijk -> i1k如果您真的认为它提高了可读性,您可以尝试对numpy提出拉取请求来支持类似的东西