首页 > 解决方案 > 自定义乘法和numpy

问题描述

a假设我在两个 Python 对象和之间有自己的乘法b,我们称之为my_multiplication(a, b)

如何使用 numpy where my_multiplicationis executed 而不是通常执行矩阵乘法*?这甚至可能吗?

附录:那我还能从 numpy 的速度中受益吗?

标签: numpy

解决方案


您可以在您的函数上使用np.vectorise来让您的自定义乘法函数使用所有常见的 numpy 功能,例如广播。

def my_multiplication(a, b):
    #your code that works on multiplying 2 numbers
    return c
v_my_multiplication = np.vectorize(my_multiplication)
v_my_multiplication([1, 2, 3], [1, 6])

#Will now work for np.array instead of just 2 numbers and utilize the broadcasting and vectorized implementation benefits that numpy has to offer.

推荐阅读