numpy数组xTest与x做点积新增列触发IndexError如何解决
报错根本原因解析
- 核心触发点:你的
xTest是纯numpy.ndarray类型,而非pandas.DataFrame类型。numpy数组的索引规则仅支持整数、切片、布尔数组等类型作为下标,完全不支持字符串作为索引,你尝试用"pred"这个字符串作为索引给numpy数组新增列的操作,直接违反了numpy的索引语法,这就是报错的根本原因。 - 补充验证:你写的
np.dot(xTest,x)、xTest.dot(x)两个点积计算逻辑本身没有问题,计算得到的就是长度为25000的一维预测结果数组,问题完全出在赋值环节的索引写法。 - 转DataFrame生效的原因:pandas.DataFrame原生支持字符串作为列名索引新增列,你将numpy数组转换为DataFrame后,
df["pred"] = 点积结果的写法符合pandas的语法规则,因此可以正常执行。
内容的提问来源于stack exchange,提问作者Cav
相关产品推荐
相关产品推荐

