python - “numpy.float64”对象不支持项目分配
问题描述
我有“2006 年至 2016 年 IMDB 数据”的数据框,位于 Kaggle 网站: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.values
sim = 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'>
解决方案
我发现这个问题是如何发生的,我已经为我的数组分配了浮点变量,但是当我使用带有mean函数的fillna并且在内部积中它返回一些复杂变量时,我将数组类型更改为这种形式:
sim = np.ones((1000,1), dtype=np.complex_)
问题就解决了。
推荐阅读
- python - How are elements across Rows(r) and columns (c) arranged in numpy?
- .net-core - .NET Core 5.0:Obfuscar 以代码 123 退出
- qt - QML:在 ScrollView 中向上展开 ColumnLayout?
- flutter - 如何在飞镖中将 x-www-form-urlencoded 字符串转换为 json?
- javascript - React useState 设置器如何在不使用状态变量的情况下更新此状态变量?
- c# - 正则表达式与 ACUTE ACCENT 不匹配
- solidity - 使用 IPFS 以安全的方式铸造 NFT
- karate - 有没有办法用报告(html)文件中的服务器执行时间替换加特林的执行时间?
- text - 带有文本的openlayer标记,关卡有些奇怪
- regression - i 之间有区别吗?并吸收stata?