python-3.x 在np.dotnumpy中实现一个函数时,我如何知道我是否需要使用www.example.com()或 * 操作符?

nzk0hqpo  于 2023-01-27  发布在  Python
关注(0)|答案(1)|浏览(100)

我想要实现以下数学公式来计算numpy中的成本函数J:

[1] 𝐴=𝜎(𝑤.𝑇𝑋+𝑏)=(𝑎(1),𝑎(2),...,𝑎(𝑚−1),𝑎(𝑚))

    [2] 𝐽=−1/𝑚 ∑𝑚𝑖=1(𝑦(𝑖)log(𝑎(𝑖))+(1−𝑦(𝑖))log(1−𝑎(𝑖)))

因此:

  • w、B、X、Y

我已经找到了一个解决方案,但我不明白为什么它的工作方式:

A = sigmoid(np.dot(w.T,X)+b)
 cost = -(1/m) * np.sum((Y*np.log(A))+(1-Y)*np.log(1-A))

**我的问题是:我如何知道何时使用np.dot进行乘法运算,何时使用 * 运算符?例如,为什么 *w.TX(来自公式1)由np.dot(w.T,X)而不是w.TX实现?

在np.dotnumpy中实现函数时,我如何知道如何使用www.example.com()以及何时使用 * 运算符?

zwghvu4y

zwghvu4y1#

是的,这很混乱,但是np.dot当你想执行矩阵乘法时,你应该使用www.example.com()函数,因为它遵循矩阵乘法的标准规则,当你想执行元素乘法时,你应该使用 * 操作符,因为它将两个数组中对应的元素相乘,而不管它们的形状如何。
注意:使用 * 运算符比使用np.dot()更快,特别是当您有大型矩阵时。

相关问题