python问题:我在一对3d数组上执行了np.einsum操作:
return np.einsum('ijk, ijk -> ik', input_array, self._beta_array)
我遇到的问题是结果是2d;该操作折叠了“ j”维。我想做的是让它保留'j'维度,类似于np.sum函数中'keepdims'的工作方式。
我可以将结果包装在np.expand_dims中,但对我而言似乎效率不高。我宁愿找到一种方法来调整einsum来输出我想要的东西。
这可能吗?
我可以将结果包装在中
np.expand_dims
,但对我而言似乎效率不高
在numpy中添加维度最糟糕的是O(ndim),因此基本上是免费的。至关重要的是,实际数据没有被触及-所有发生的是.strides
和.shape
元组各获得一个额外的元素
现在无法使用einsum直接获取您想要的东西。
ijk, ijk -> i1k
如果您确实认为numpy可以提高可读性,则可以尝试对numpy进行拉取请求以支持,
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句