我在Kaggle網站上有“ 2006年至2016年的IMDB數據”數據框,網址為:https ://www.kaggle.com/PromptCloudHQ/imdb-data 。我已經將其作為numpy數組,但是當我想將其兩行的內積分配給numpy.float64變量時,它給了我這個錯誤:sim[i][1] = np.inner(vec[i],vec[1])TypeError: 'numpy.float64' object does not support item assignment這是我的代碼:X = trainset.drop(['Description', 'Runtime','Director','Title', 'ID'], axis=1)X.Revenue = X.Revenue.fillna(X.Revenue.mean())X.Metascore= X.Metascore.fillna(X.Revenue.min())features = ['Genre','Actors']for f in features: X_dummy = X[f].str.get_dummies(',').add_prefix(f + '.') X = X.drop([f], axis = 1) X = pd.concat((X, X_dummy), axis = 1)vec = np.ones((1000,2422), dtype=np.uint8)vec = X.valuessim = np.ones((1000,1), dtype=np.float64)for i in range (1,1000): sim[i][1] = np.inner(vec[i],vec[1])當我得到這種內部產品的類型時,它恰好給了我這種類型:>>chi = np.inner(vec[0],vec[0])>>print(type(chi))<class 'numpy.float64'>
1 回答

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
我發(fā)現(xiàn)了這個問題是怎么發(fā)生的,我已經給數組分配了float變量,但是當我在均值函數中使用fillna時,在內部乘積之后它返回了一些復雜的變量,所以我將數組類型更改為這種形式:
sim = np.ones((1000,1), dtype=np.complex_)
問題就解決了。
添加回答
舉報
0/150
提交
取消