传递值的长度为 1,索引表示 260

Posted

技术标签:

【中文标题】传递值的长度为 1,索引表示 260【英文标题】:Length of passed values is 1, index implies 260 【发布时间】:2020-06-12 21:05:03 【问题描述】:

predicted_classes 的输出

array([ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,
        3,  3,  3,  3,  3,  3,  4,  4,  2,  4,  4,  4,  4,  5,  4,  4,  5,
        5,  5,  5,  5,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  6,  6,  6,
        6,  6,  7,  7,  7,  7,  7,  7,  7, 13,  7,  7,  8, 11,  8,  8,  8,
        11,  8, 11, 11,  8, 11,  9,  9,  9,  9,  9,  9,  9,  9,  8, 10, 10,
        10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,  8, 11, 11, 11,
        11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13,  3, 13,  3,
        3, 13, 13, 13, 14, 14, 14, 14, 14, 14,  2, 14, 14, 14, 15, 15, 15,
        15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 20, 16, 16,
        17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18,
        18, 18, 18, 19, 19, 19, 19,  8, 19, 19, 19, 19, 19, 20, 20, 20, 20,
        20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22,
        22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
        23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25,
        25, 25, 25, 25, 25])

y_true 的输出

0 0 1 0 2 0 3 0 4 0 .. 255 25 256 25 257 25 258 25 259 25 名称:标签,长度:260,数据类型:int64

我想用这段代码获取索引,并得到这个值错误。

predicted_classes = model.predict_classes(X_test)
y_true = data_test.iloc[:, 0]
correct = np.nonzero(predicted_classes==y_true)[0]
incorrect = np.nonzero(predicted_classes!=y_true)[0]

错误的痕迹

ValueError Traceback(最近一次调用最后一次) 在 4 #获取要绘制的索引 5 y_true = data_test.iloc[:, 0] ----> 6 正确 = np.nonzero(predicted_classes!=y_true)[0] 7 不正确 = np.nonzero(predicted_classes==y_true)[0] 在非零(*args,**kwargs) //anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py in nonzero(a) 1894年 第1895章 -> 1896 返回 _wrapfunc(a, '非零') 1897年 1898年 //anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapfunc(obj, method, *args, **kwds) 56 bound = getattr(obj,方法,无) 57 如果绑定为无: ---> 58 返回 _wrapit(obj, 方法, *args, **kwds) 59 60 次尝试: //anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapit(obj, method, *args, **kwds) 49 如果不是实例(结果,mu.ndarray): 50 结果 = asarray(结果) ---> 51 结果 = 换行(结果) 52 返回结果 53 //anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in __array_wrap__(self, result, context) 1916 返回结果 1917 d = self._construct_axes_dict(self._AXIS_ORDERS,复制=假) -> 1918 返回 self._constructor(result, **d).__finalize__(self) 1919年 1920 # 理想情况下,我们会定义它以避免 getattr 检查,但是 //anaconda3/lib/python3.7/site-packages/pandas/core/series.py in __init__(self, data, index, dtype, name, copy, fastpath) 290 如果 len(索引)!= len(数据): 第291章 --> 292 f"传递值的长度是len(data), " 293 f"index 意味着 len(index)。" 294) ValueError:。

请告诉我哪里出错了。

【问题讨论】:

请写下你想要完成的,即实际输出和预期输出。请阅读介绍页面"How do I ask a good question?" 清楚地写下您的查询。很难理解实际问题是什么以及您为什么要面临这个问题。我做了一个快速的谷歌搜索,并根据您的错误详细信息找到以下链接link [link] (***.com/questions/27719407/…) [link] (github.com/quantopian/pyfolio/issues/449) 实际上我只是使用我自己的数据集按照这个 [链接] (kaggle.com/bugraokcu/cnn-with-keras/data),当我继续分类报告步骤时,我得到了错误 【参考方案1】:

快速搜索发现old version of the documentation 建议使用.to_numpy().nonzero() 代替Series.nonzero()

【讨论】:

以上是关于传递值的长度为 1,索引表示 260的主要内容,如果未能解决你的问题,请参考以下文章

如何用反向二进制表示重新索引一个numpy数组?

创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积

创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积,

Pandas ValueError:值的长度与索引的长度不匹配 - 创建新列

添加具有基于从文件名中提取的日期的值的列(值的长度 (1) 与索引的长度 (50) 不匹配)

隔离林值的长度与索引的长度不匹配