Python 如何使用数据帧中的列从多项式中查找根
在python上,我在试图找到涉及多个数据帧列的多项式的根时遇到了一个问题 cp=((u1+u4)(u1^2-u4^2))/2u1^3 我试图找到u4真正的积极根源 我已经能够使用MATLAB找到根,但不确定如何使用python找到它们。我在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上使用的代码:
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查找方程的根”,您会找到比我们在这里所能找到的更好的解释这一点的参考资料。欢迎您,很高兴能提供帮助!别忘了单击向上箭头。谢谢:)。