首页 > 解决方案 > 如何在没有for循环的情况下计算numpy数组

问题描述

我有两个形状A = (226, 250)B = (195, 195, 250). 我想计算一个新数组C

for i in range(A.shape[0]):
    C = A[i, :].reshape(1, 1, -1) - B        

是否有另一种无需迭代过程即可计算 C 的方法?

标签: pythonarraysnumpybroadcast

解决方案


看来你想要

C = A[:, None, None, :] - B

None是 的别名np.newaxis。它会在您将其放置在索引中的位置插入一个新轴。就像

C = A.reshape(A.shape[0], 1, 1, A.shape[1])

推荐阅读