错误只有整数标量数组可以转换为标量索引

aze*_*eez 5 python python-3.x

我正在使用Python 3.6。

我正在尝试这样做:

import numpy as np

def run_11(x):
return x+1

kk = np.arange(1, 17)

for i in range (kk):
     ind = run_11(i)
     print (i)
     print (ind)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

类型错误:只有整数标量数组可以转换为标量索引

我不明白为什么以及如何解决它。任何建议将不胜感激

Mik*_*ler 1

使用range(kk.shape[0])

for i in range(kk.shape[0]):
     ind = run_11(i)
     print (i)
     print (ind)
Run Code Online (Sandbox Code Playgroud)

range()采用整数作为参数,而不是 NumPy 数组。.shape[0]给你一个16,你的数组的长度。

这样做会很短:

res = run_11(kk)
Run Code Online (Sandbox Code Playgroud)

这也更快并且利用了 NumPys 向量化能力。