Python 如何使用数据帧中的列从多项式中查找根

Python 如何使用数据帧中的列从多项式中查找根,python,Python,在python上,我在试图找到涉及多个数据帧列的多项式的根时遇到了一个问题 cp=((u1+u4)(u1^2-u4^2))/2u1^3 我试图找到u4真正的积极根源 我已经能够使用MATLAB找到根,但不确定如何使用python找到它们。我在python上使用了以下代码: df['u4'] = np.roots([ 1/(2*df['u1']**3), 1/(2*df['u1']**2), -1/(2*df['u1']), df['cp'] - 1/2]); 这是我在MATLAB上使用的代码:

在python上,我在试图找到涉及多个数据帧列的多项式的根时遇到了一个问题

cp=((u1+u4)(u1^2-u4^2))/2u1^3

我试图找到u4真正的积极根源

我已经能够使用MATLAB找到根,但不确定如何使用python找到它们。我在python上使用了以下代码:

df['u4'] = np.roots([ 1/(2*df['u1']**3), 1/(2*df['u1']**2), -1/(2*df['u1']), df['cp'] - 1/2]);
这是我在MATLAB上使用的代码:

u4 = roots([ 1/(2*u1^3), 1/(2*u1^2), -1/(2*u1), cp - 1/2]);

我得到了ValueError:输入必须是秩1数组。如果有人能帮我,那就太好了。

我想从你的代码中指出一些东西

这:
df['u4']
表示您选择的是数据帧中的整个
u4
列,而不是其中的值或您在类似语法下所做的任何操作,这意味着
(2*df['u1']**3)
等都将返回错误

如果您试图计算每个列的每个条目的值,则必须在整个数据帧中迭代该值,并按iterable进行计算

for i in range(0, len(df)):

  df['u4'][i] = np.roots([ 1/(2*df['u1'][i]**3), 1/(2*df['u1'][i]**2), -1/(2*df['u1'][i]), df['cp'][i] - 1/2])
我没有专注于数学(免责声明:D)。但基本上,它使用数据帧中所有行的
np.roots
方法中的公式,将值存储在数据帧中u4列的第i行


不管怎样,如果这能解决你的问题,请告诉我。谢谢:)

如果您在浏览器中搜索“Python查找方程的根”,您会找到比我们在这里所能找到的更好的解释这一点的参考资料。欢迎您,很高兴能提供帮助!别忘了单击向上箭头。谢谢:)。