【发布时间】:2021-06-04 09:12:07
【问题描述】:
我有一个 3 维数组 A,我想对其中一个轴上的值求和并创建一个包含总和的二维数组。
这可以通过使用循环遍历 3d 数组来简单地完成,但这样做非常慢。
A = np.sum(A,axis=0) 可以比幼稚的方式快得多,但是有更快的方法吗?
我在 Matlab 中发现了这个答案:https://www.mathworks.com/matlabcentral/answers/3643-efficiently-converting-a-3d-matrix-to-a-2d-matrix
我想知道在 Python 中是否有类似的有效方法。
以下是我正在寻找的:
A = np.ones((3, 3, 3))
# numpy magic ...
print (A)
/**********
* [3, 3, 3],
* [3, 3, 3],
* [3, 3, 3]
***********/
【问题讨论】:
-
你附加的matlab线程只是连接,你说你想沿轴求和,在numpy中我很确定
np.sum将是最快的解决方案。如果要复制matlab代码,可以使用np.transpose和np.reshape
标签: python arrays numpy numpy-ndarray