我正在使用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)
我收到此错误:
TypeError:只能将整数标量数组转换为标量索引
我无法理解为什么以及如何解决它。任何建议将不胜感激
答案 0 :(得分:0)
使用range(kk.shape[0])
:
for i in range(kk.shape[0]):
ind = run_11(i)
print (i)
print (ind)
range()
采用整数作为参数,而不是NumPy数组。 .shape[0]
为您提供16
,即数组的长度。
这样做会很短:
res = run_11(kk)
这也更快,并利用了NumPys矢量化功能。
答案 1 :(得分:0)
使用for i in kk
代替for i in range(kk)
,因为kk
已经是范围。您正在尝试这样做for i in range(np.arange(1, 17))
,因为范围将输入作为数字而不是另一个范围。