Why am I getting the "ValueError: data type <class 'numpy.object_'> not inexact." while using polyfit function?
Why am I getting the "ValueError: data type <class 'numpy.object_'> not inexact." while using polyfit function?
我正在尝试为我的数据绘制趋势线。但是,我收到错误
ValueError: data type <class 'numpy.object_'> not inexact.
有人可以解释为什么吗?
我的数据框是 Us_corr3;
这是我的代码:
data5 = Us_corr3[['US GDP', 'US Unemployment']]
x = data5['US GDP']
y = data5['US Unemployment']
plt.scatter(x, y)
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r--")
plt.show()
它说;
ValueError: data type <class 'numpy.object_'> not inexact.
如果 x
,从您的 Series
派生的数组是 object
dtype,它会产生您的错误:
In [67]: np.polyfit(np.arange(3).astype(object),np.arange(3),1)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-67-787351a47e03> in <module>
----> 1 np.polyfit(np.arange(3).astype(object),np.arange(3),1)
<__array_function__ internals> in polyfit(*args, **kwargs)
/usr/local/lib/python3.6/dist-packages/numpy/lib/polynomial.py in polyfit(x, y, deg, rcond, full, w, cov)
605 # set rcond
606 if rcond is None:
--> 607 rcond = len(x)*finfo(x.dtype).eps
608
609 # set up least squares equation for powers of x
/usr/local/lib/python3.6/dist-packages/numpy/core/getlimits.py in __new__(cls, dtype)
380 dtype = newdtype
381 if not issubclass(dtype, numeric.inexact):
--> 382 raise ValueError("data type %r not inexact" % (dtype))
383 obj = cls._finfo_cache.get(dtype, None)
384 if obj is not None:
ValueError: data type <class 'numpy.object_'> not inexact
像这样的函数需要数字 dtype 数组。首先清理你的数据框!
我正在尝试为我的数据绘制趋势线。但是,我收到错误
ValueError: data type <class 'numpy.object_'> not inexact.
有人可以解释为什么吗?
我的数据框是 Us_corr3;
这是我的代码:
data5 = Us_corr3[['US GDP', 'US Unemployment']]
x = data5['US GDP']
y = data5['US Unemployment']
plt.scatter(x, y)
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r--")
plt.show()
它说;
ValueError: data type <class 'numpy.object_'> not inexact.
如果 x
,从您的 Series
派生的数组是 object
dtype,它会产生您的错误:
In [67]: np.polyfit(np.arange(3).astype(object),np.arange(3),1)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-67-787351a47e03> in <module>
----> 1 np.polyfit(np.arange(3).astype(object),np.arange(3),1)
<__array_function__ internals> in polyfit(*args, **kwargs)
/usr/local/lib/python3.6/dist-packages/numpy/lib/polynomial.py in polyfit(x, y, deg, rcond, full, w, cov)
605 # set rcond
606 if rcond is None:
--> 607 rcond = len(x)*finfo(x.dtype).eps
608
609 # set up least squares equation for powers of x
/usr/local/lib/python3.6/dist-packages/numpy/core/getlimits.py in __new__(cls, dtype)
380 dtype = newdtype
381 if not issubclass(dtype, numeric.inexact):
--> 382 raise ValueError("data type %r not inexact" % (dtype))
383 obj = cls._finfo_cache.get(dtype, None)
384 if obj is not None:
ValueError: data type <class 'numpy.object_'> not inexact
像这样的函数需要数字 dtype 数组。首先清理你的数据框!