为了账号安全,请及时绑定邮箱和手机立即绑定

'numpy.float64'对象不支持项目分配

'numpy.float64'对象不支持项目分配

蓝山帝景 2021-04-26 05:08:54
我在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个赞

我发现了这个问题是怎么发生的,我已经给数组分配了float变量,但是当我在均值函数中使用fillna时,在内部乘积之后它返回了一些复杂的变量,所以我将数组类型更改为这种形式:

sim = np.ones((1000,1), dtype=np.complex_)

问题就解决了。


查看完整回答
反对 回复 2021-05-11
  • 1 回答
  • 0 关注
  • 2212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信