簡體   English   中英

TypeError:無法從dtype('

[英]TypeError: Cannot cast array data from dtype('<U1') to dtype('float64') according to rule 'safe'

當試圖在散點圖上使用不同的顏色繪制離群值時,我遇到了此錯誤:

TypeError:根據規則“安全”,無法將數組數據從dtype('U1')轉換為dtype('float64')

我的代碼:

import statsmodels.api as sm
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

CRP = pd.read_csv('CarsProp.csv')

priceMean = CRP.price.mean()
priceStd = CRP.price.std()   

CRP['isOutlierPrice'] = np.nan
testColumn1 = abs(CRP.price - priceMean) > 2*priceStd

for i, value in enumerate(testColumn1):
    if value == True:
        CRP['isOutlierPrice'][i] = 1

mileageMean = CRP.mileage.mean()
mileageStd = CRP.mileage.mean()

CRP['isOutlierMileage'] = np.nan
testColumn2 = abs(CRP.mileage - mileageMean) > 2*priceStd

for i, value in enumerate(testColumn2):
    if value == True:
        CRP['isOutlierMileage'][i] = 1

outlierPmsJoint = ((CRP['isOutlierPrice'] == 1) | (CRP['isOutlierMileage'] == 1))

colorChoiceDict = {True: (1.0, 0.55, 0.0, 1.0), 
              False: (0.11, 0.65, 0.72, 0.1)}

colorCol = [colorChoiceDict[val] for val in outlierPmsJoint]

PriceFloat = [float(val) for val in CRP.price]
MileageFloat = [float(val) for val in CRP.mileage]

plt.figure()
plt.scatter(PriceFloat, MileageFloat, c = colorCol, linewidth='0')
plt.set_title('Price vs. Mileage with outliers')  

有誰知道問題在哪里以及如何解決? 謝謝,

問題出在散布圖線上。 它應該是:

plt.scatter(PriceFloat, MileageFloat, c = colorCol, linewidth=0)

我將線寬arg置於倒置昏迷狀態,這沒有產生輸出。 但是,錯誤消息是非常令人誤解的。 下次在調試時,我可能會較少關注該錯誤消息。

TypeError:無法將數組數據從 dtype('float64) 轉換為 dtype(' <u32') according to safe rule< div><div id="text_translate"><pre> class SigmoidNeuron: def __init__(self): self.w=None self.b=None def perceptron(self,x): return np.dot(x,self.wT)+self.b def sigmoid(self,x): return 1.0/(1.0+np.exp(-x)) def grad_w(self,x,y): y_pred = self.sigmoid(self.perceptron(x)) return (y_pred-y)*y_pred*(1-y_pred)*x def grad_b(self,x,y): y_pred = self.sigmoid(self.perceptron(x)) return (y_pred-y)*y_pred*(1-y_pred) def fit(self,x,y,epochs=1,learning_rate=1,initialise=True): #initialise w,b if initialise: self.w=np.random.randn(1,X.shape[1]) self.b=0 for i in range(epochs): dw=0 db=0 for x,y in zip(X,Y): dw+=self.grad_w(x,y) db+=self.grad_b(x,y) self.w -= learning_rate*dw self.b -= learning_rate*db</pre><pre> `</pre><p> 我正在運行一個 sigmoid 神經網絡代碼,並且在使用數據運行此 class 時出現錯誤</p><pre>X_scaled_train.astype(float) array([[ 1.29929126, -0.90185206, 0.03173306, ..., -0.14142136, -0.15523011, 0.21232515], [-1.16225208, -0.86697607, 1.03451971, ..., -0.14142136, -0.15523011, 0.21232515], [ 1.77523922, 0.65594214, 0.03173306, ..., -0.14142136, -0.15523011, 0.21232515], ..., [ 1.44058831, -0.58796815, -0.66464655, ..., -0.14142136, -0.15523011, 0.21232515], [-1.42253612, 0.50481285, 1.54984063, ..., -0.14142136, -0.15523011, 0.21232515], [ 1.06875397, 0.6791928, 0.97880934, ..., -0.14142136, -0.15523011, 0.21232515]])</pre><pre> Y_scaled_train.astype(float) array([[0.68], [0.72], [0.72], [0.6 ], [0.8 ], [0.64], [0.68],</pre><p> 這些是我在運行這條線時訓練集的數據 sn.fit(X_scaled_train,Y_scaled_train,epochs=10,learning_rate=0.2) 我收到了那個類型錯誤我應該怎么做才能刪除它</p><p>錯誤顯示</p><pre>TypeError Traceback (most recent call last) &lt;ipython-input-167-51016d58d1f5&gt; in &lt;module&gt;() ----&gt; 1 sn.fit(X_scaled_train,Y_scaled_train,epochs=10,learning_rate=0.2) 2 frames &lt;ipython-input-25-2e09637c6d09&gt; in perceptron(self, x) 4 self.b=None 5 def perceptron(self,x): ----&gt; 6 return np.dot(x,self.wT)+self.b 7 def sigmoid(self,x): 8 return 1.0/(1.0+np.exp(-x)) &lt;__array_function__ internals&gt; in dot(*args, **kwargs) TypeError: Cannot cast array data from dtype('float64') to dtype('&lt;U32') according to the rule 'safe'</pre></div></u32')>

[英]TypeError: cannot cast array data from dtype('float64) to dtype('<U32') according to safe rule

cut function:無法將數組數據從 dtype('float64') 轉換為 dtype(' <u32') according to the rule 'safe'< div><div id="text_translate"><p> 我想將 Dataframe 的列中的內容更改為“好”或“壞”。 該列填充了從 1 到 10 的數字。1-5 是壞的,6-10 是好的。 為此,我想使用 cut 方法。</p><pre> bins = (1, 5.5, 10) rating = ['bad', 'good'] game['useropinion'] = pd.cut(rating, bins)</pre><p> 運行后的結果:</p><pre> Cannot cast array data from dtype('float64') to dtype('&lt;U32') according to the rule 'safe'</pre><p> 怎么了? 我如何解決它?</p></div></u32')>

[英]cut function : Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'

(Python) Pivot 表 - 無法將數組數據從 dtype('float64) 轉換為 dtype(' <u32') according to safe rule< div><div id="text_translate"><p> 在制作 pivot 表時,我遇到了轉換數組數據錯誤的問題。 我已經徹底檢查了所有組件都是float64。 但是錯誤仍然存在。 我的代碼片段轉載如下:</p><pre> bins_array=np.asarray(bins_list,dtype = np.float64) Genesis_file['PASS_DATE']=np.round(((date_rp-Genesis_file['VALUE_DATE']).dt.days)/365,1) temp_file=Genesis_file.pivot_table(values ='ACY_CURR_BALANCE_2021.03.19',index = pd.cut('CM_MIS_Y',bins = bins_array), columns = pd.cut('PASS_DATE',bins = bins_array),fill_value = 0.0, aggfunc = 'sum', dropna = False) &gt;&gt;&gt;TypeError: Cannot cast array data from dtype('float64') to dtype('&lt;U32') according to the rule 'safe'</pre><pre> Genesis_file['ACY_CURR_BALANCE_2021.03.19'].dtypes &gt;&gt;&gt;dtype('float64') Genesis_file['CM_MIS_Y'].dtypes &gt;&gt;&gt;dtype('float64') Genesis_file['PASS_DATE'].dtypes &gt;&gt;&gt;dtype('float64')</pre><p> 所有列都是float64; 但是 ['ACY_CURR_BALANCE_2021.03.19'] 列沒有四舍五入; ['CM_MIS_Y'] 和 ['PASS_DATE'] 舍入到小數點后 1 位(希望信息有所幫助!)</p><p> 非常感謝!</p></div></u32')>

[英](Python) Pivot table- cannot cast array data from dtype('float64) to dtype('<U32') according to safe rule

無法從 dtype(&#39;

[英]Cannot cast array data from dtype('<M8[ns]') to dtype('float64') according to the rule 'safe'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 TypeError:無法將數組數據從 dtype('float64) 轉換為 dtype(' <u32') according to safe rule< div><div id="text_translate"><pre> class SigmoidNeuron: def __init__(self): self.w=None self.b=None def perceptron(self,x): return np.dot(x,self.wT)+self.b def sigmoid(self,x): return 1.0/(1.0+np.exp(-x)) def grad_w(self,x,y): y_pred = self.sigmoid(self.perceptron(x)) return (y_pred-y)*y_pred*(1-y_pred)*x def grad_b(self,x,y): y_pred = self.sigmoid(self.perceptron(x)) return (y_pred-y)*y_pred*(1-y_pred) def fit(self,x,y,epochs=1,learning_rate=1,initialise=True): #initialise w,b if initialise: self.w=np.random.randn(1,X.shape[1]) self.b=0 for i in range(epochs): dw=0 db=0 for x,y in zip(X,Y): dw+=self.grad_w(x,y) db+=self.grad_b(x,y) self.w -= learning_rate*dw self.b -= learning_rate*db</pre><pre> `</pre><p> 我正在運行一個 sigmoid 神經網絡代碼,並且在使用數據運行此 class 時出現錯誤</p><pre>X_scaled_train.astype(float) array([[ 1.29929126, -0.90185206, 0.03173306, ..., -0.14142136, -0.15523011, 0.21232515], [-1.16225208, -0.86697607, 1.03451971, ..., -0.14142136, -0.15523011, 0.21232515], [ 1.77523922, 0.65594214, 0.03173306, ..., -0.14142136, -0.15523011, 0.21232515], ..., [ 1.44058831, -0.58796815, -0.66464655, ..., -0.14142136, -0.15523011, 0.21232515], [-1.42253612, 0.50481285, 1.54984063, ..., -0.14142136, -0.15523011, 0.21232515], [ 1.06875397, 0.6791928, 0.97880934, ..., -0.14142136, -0.15523011, 0.21232515]])</pre><pre> Y_scaled_train.astype(float) array([[0.68], [0.72], [0.72], [0.6 ], [0.8 ], [0.64], [0.68],</pre><p> 這些是我在運行這條線時訓練集的數據 sn.fit(X_scaled_train,Y_scaled_train,epochs=10,learning_rate=0.2) 我收到了那個類型錯誤我應該怎么做才能刪除它</p><p>錯誤顯示</p><pre>TypeError Traceback (most recent call last) &lt;ipython-input-167-51016d58d1f5&gt; in &lt;module&gt;() ----&gt; 1 sn.fit(X_scaled_train,Y_scaled_train,epochs=10,learning_rate=0.2) 2 frames &lt;ipython-input-25-2e09637c6d09&gt; in perceptron(self, x) 4 self.b=None 5 def perceptron(self,x): ----&gt; 6 return np.dot(x,self.wT)+self.b 7 def sigmoid(self,x): 8 return 1.0/(1.0+np.exp(-x)) &lt;__array_function__ internals&gt; in dot(*args, **kwargs) TypeError: Cannot cast array data from dtype('float64') to dtype('&lt;U32') according to the rule 'safe'</pre></div></u32')> Matplotlib錯誤TypeError:無法將數組數據從dtype(&#39;float64&#39;)轉換為dtype(&#39; 類型錯誤:無法根據規則“安全”將數組數據從 dtype(&#39;O&#39;) 轉換為 dtype(&#39;float64&#39;) cut function:無法將數組數據從 dtype('float64') 轉換為 dtype(' <u32') according to the rule 'safe'< div><div id="text_translate"><p> 我想將 Dataframe 的列中的內容更改為“好”或“壞”。 該列填充了從 1 到 10 的數字。1-5 是壞的,6-10 是好的。 為此,我想使用 cut 方法。</p><pre> bins = (1, 5.5, 10) rating = ['bad', 'good'] game['useropinion'] = pd.cut(rating, bins)</pre><p> 運行后的結果:</p><pre> Cannot cast array data from dtype('float64') to dtype('&lt;U32') according to the rule 'safe'</pre><p> 怎么了? 我如何解決它?</p></div></u32')> (Python) Pivot 表 - 無法將數組數據從 dtype('float64) 轉換為 dtype(' <u32') according to safe rule< div><div id="text_translate"><p> 在制作 pivot 表時,我遇到了轉換數組數據錯誤的問題。 我已經徹底檢查了所有組件都是float64。 但是錯誤仍然存在。 我的代碼片段轉載如下:</p><pre> bins_array=np.asarray(bins_list,dtype = np.float64) Genesis_file['PASS_DATE']=np.round(((date_rp-Genesis_file['VALUE_DATE']).dt.days)/365,1) temp_file=Genesis_file.pivot_table(values ='ACY_CURR_BALANCE_2021.03.19',index = pd.cut('CM_MIS_Y',bins = bins_array), columns = pd.cut('PASS_DATE',bins = bins_array),fill_value = 0.0, aggfunc = 'sum', dropna = False) &gt;&gt;&gt;TypeError: Cannot cast array data from dtype('float64') to dtype('&lt;U32') according to the rule 'safe'</pre><pre> Genesis_file['ACY_CURR_BALANCE_2021.03.19'].dtypes &gt;&gt;&gt;dtype('float64') Genesis_file['CM_MIS_Y'].dtypes &gt;&gt;&gt;dtype('float64') Genesis_file['PASS_DATE'].dtypes &gt;&gt;&gt;dtype('float64')</pre><p> 所有列都是float64; 但是 ['ACY_CURR_BALANCE_2021.03.19'] 列沒有四舍五入; ['CM_MIS_Y'] 和 ['PASS_DATE'] 舍入到小數點后 1 位(希望信息有所幫助!)</p><p> 非常感謝!</p></div></u32')> 根據規則&#39;safe&#39;,無法將數組數據從dtype(&#39;float64&#39;)轉換為dtype(&#39;int32&#39;) 無法從 dtype(&#39; Numpy.dot TypeError:根據規則&#39;safe&#39;,無法將數組數據從dtype(&#39;float64&#39;)轉換為dtype(&#39;S32&#39;) 無法根據規則“安全”將數組數據從 dtype(&#39;O&#39;) 轉換為 dtype(&#39;float64&#39;) 無法根據規則“安全”將數組數據從dtype(&#39;complex128&#39;)強制轉換為dtype(&#39;float64&#39;)
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM