How to iterate list in numpy and avoid TypeError: Only integer scalar arrays can be converted to a scalar index

How to iterate list in numpy and avoid TypeError: Only integer scalar arrays can be converted to a scalar index

我正在使用 numpy: 我有一个列表:[array([2, 5, 0, 6, 6, 0, 2, 0]), array([3, 2, 5, 4, 4, 5, 6, 0]), array([1, 1, 5, 1, 4, 6, 0, 0]), array([1, 3, 5, 4, 2, 2, 5, 3]), array([5, 0, 6, 3, 1, 0, 5, 3]), array([1, 5, 1, 6, 0, 3, 5, 5]), array([4, 6, 1, 1, 3, 5, 2, 6]), array([5, 5, 1, 2, 6, 0, 5, 0])] <class 'list'>

我希望能够迭代列表中的每个数组并将其传递给一个函数,并为此创建一个新的结果列表:

fit=[]
for i in collection:
    state = collection[i]
    test = Review(state)
    fit.append(test.function())
print(fit) 

但我收到以下类型错误:

TypeError: only integer scalar arrays can be converted to a scalar index

i 需要是一个 int 但在这种情况下,它将是列表中的一个数组,我需要做的是将每个数组传递给此函数以获得结果并将其添加到新的拟合列表中

for 循环遍历 collection,因此 i 将成为 collection 的一个元素。您收到错误是因为 i 不是整数。 state = collection[i] 这一行也是多余的。相反,你可以简单地做 state = i

在您发表评论后,如果您想遍历内部数组,则需要第二个循环。以对数组求和为例,它看起来像这样:

for i in collection:
    arr_sum = 0
    for j in i:
        arr_sum += j
    print(f'Array sum is {arr_sum}')

请注意,对于简单求和的应用,您可以使用 sum() 函数。

要遍历数组列表,试试这个:

fit=[]
for state in collection: #Iterate over each element in the collection
    test = Review(state)
    fit.append(test.function())
print(fit) 

或者

fit=[]
for i in collection:
    state = i
    test = Review(state)
    fit.append(test.function())
print(fit)