You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KNN拟合遇序列赋值报错,如何将X转为(2000,16)形状?

解决方法:将(2000,)的嵌套数组转换为(2000,16)特征矩阵

你的问题核心是当前的X是形状为(2000,)的一维数组,每个元素是长度为16的子数组,而KNN模型要求输入的特征矩阵必须是二维结构(n_samples, n_features),直接转换即可,有两种简单方法:

  • 用np.array()直接转换:因为所有子数组长度一致,numpy会自动把嵌套结构转为二维矩阵

    import numpy as np
    X_reshaped = np.array(X, dtype=np.uint8)
    
  • 用np.stack()堆叠:将每个子数组沿0轴拼接成二维数组

    X_reshaped = np.stack(X, axis=0)
    

转换完成后,你可以通过print(X_reshaped.shape)验证,输出应该是(2000, 16),此时再执行KNeighborsClassifier(3).fit(X_reshaped, y)就不会触发错误了。

内容的提问来源于stack exchange,提问作者thiagoh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:50:20