首页 > 解决方案 > 无法使用 argmax 访问列表的索引以获得最大值

问题描述

我正在研究一个朴素贝叶斯分类器,我得到了这个数组列表作为日志预测:

predict = [array([-45.73329593, -47.23015876]), array([-56.83024746, -59.20630121]), array([-53.17297542, -55.19852072]), array([-35.67031864, -36.09391906]), array([-65.57891295, -66.81787995]), array([-62.64077968, -64.78048969]), array([-60.44866178, -61.96371683]), array([-46.36333681, -49.33896595]), array([-44.94102615, -46.89321275]), array([-58.67657099, -60.2740146 ]), array([-62.4623459 , -64.55626115])]

我一直在尝试运行:np.argmax(predict, axis = 1)为了选择predict. 我argmax用来返回相应的索引,但它一直抛出这个错误:TypeError: 'list' object is not callable. 为什么会抛出该错误?

标签: arrayslistnumpyargmax

解决方案


预测list不是一个numpy array

尝试将列表放入一个 numpy 数组

>>> predict
[array([-45.73329593, -47.23015876]), array([-56.83024746, -59.20630121]), array([-53.17297542, -55.19852072]), array([-35.67031864, -36.09391906]), array([-65.57891295, -66.81787995]), array([-62.64077968, -64.78048969]), array([-60.44866178, -61.96371683]), array([-46.36333681, -49.33896595]), array([-44.94102615, -46.89321275]), array([-58.67657099, -60.2740146 ]), array([-62.4623459 , -64.55626115])]
>>> type(predict)
<class 'list'>
>>> pred_a = np.array(predict)
>>> type(pred_a)
<class 'numpy.ndarray'>

推荐阅读