【发布时间】:2021-01-27 07:58:00
【问题描述】:
我遇到了与这篇文章类似的问题:
Why does this simple numpy multiply operation raise an "invalid number of arguments" error?
我的代码中有一个令人难以置信的令人困惑的方程式:
(m[0]*np.power(q[0])*q[0]*r[0]*(m[0]*R)*np.power(q[0]))/(R*((m[0]*R)*np.power(q[0])+m*np.power(q[0]))**2) - a[0]*N/(b[0]+N)
当我运行它时,它会返回错误:
ValueError:参数数量无效
我认为它可能与我用来定义指数的 ** 有关(q[0] 是一个指数),所以我将它们替换为 np.power() 没有成功。此外,我将用于定义分数的 / 更改为 *(.....)**(-1),但这也不起作用。在这一点上,我假设问题出在我用于乘法的 * 上。但是如何在这个长表达式中写乘法和除法而不引起位置错误呢?
提前感谢您的帮助!
【问题讨论】:
-
请提供 MCVE 和堆栈跟踪。错误会告诉你它发生在哪里。您可以运行调试器来找出问题所在。
-
"我认为它可能与我用来定义指数的**有关(q[0] 是一个指数),所以我将它们替换为 np.power() 到 no成功”我不明白。求幂的预期基数是什么?求幂的预期指数是多少?当您尝试自己编写此部分时,使用
**会是什么样子,它告诉您什么确切是错误的?用np.power怎么样? -
链接中关于
*和/的讨论是关于函数签名文档中的符号。它与在表达式中用作运算符的**、*或/无关。np.power明确表示它需要 2 个参数。其他参数是您不需要使用的关键字。 -
如果其他 cmets 和答案不清楚,
np.power(x, y)和x**y是等价的表达式。 -
我已经回滚了您的编辑,并在您的问题中添加了答案。我很高兴您找到了解决问题的方法。但是,实际的答案/解决方案不应编辑到您的问题中。一般来说,您应该edit 问题来澄清问题,但不要在问题中包含答案。您应该使用用于解决问题的代码创建自己的答案,然后接受它(系统可能需要 48 小时延迟才能接受您自己的答案)。
标签: python numpy valueerror