首页 > 解决方案 > 为数组赋值(Python,Numpy)

问题描述

我已经以以下形式初始化了一个数组

for x in range(0,21000): 
    if np.amax(probability[x]) > 0.2:
        i = i+1

Label = np.zeros(shape=(i,130))

现在使用以下循环我想将值分配给标签的每一行

for x in range(0,21000):
    if np.amax(probability[x]) > 0.2:
        Label[i] = [feature[x],y[x],np.amax(probability)[x]]
    i = i+1

其中 feature 是一个 128*21000 的数组。不幸的是,我不断收到以下错误:

Label[i] = [feature[x],y[x],np.amax(probability)[x]]
IndexError: invalid index to scalar variable.

标签: pythonarraysnumpy

解决方案


您不需要单个标量值,np.amax而是需要一个值数组。因此,您需要为调用指定一个特定的轴,如下所示:

np.amax(probability, axis=1)

axis您可以从文档中看到使用参数的示例

或者,如果您确实想使用标量值,请不要使用[x]in对其进行索引np.amax(probability)[x]


推荐阅读