【发布时间】:2012-01-20 19:27:15
【问题描述】:
我正在尝试将我的一些代码从 matlab 移植到 python,其中一些使用 bsxfun() 函数进行虚拟复制,然后进行乘法或除法(我也将它用于逻辑运算)。我希望能够做到这一点,而无需在乘法或除法之前实际复制向量(使用函数或使用某种对角矩阵)以节省内存和时间。
如果在某种 C 库中有等效的 bsxfun,那当然也可以。
【问题讨论】:
-
如果你在 Python 中使用数组,你会想要使用 numpy (www.numpy.org),而 numpy 具有非常好的广播属性。 (有关简短教程,请参阅 scipy.org/EricsBroadcastingDoc。)
-
根据question,matlab 中 numpy 广播的等价物是
bsxfun,所以我猜这反过来也行。 -
docs.scipy.org/doc/numpy/user/basics.broadcasting.html现在有一个“官方”的numpy广播教程,DSM建议的教程仍然可以在github.com/dwf/rescued-scipy-wiki/blob/master/…找到