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

时间:2017-12-15 03:13:18

标签: 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)

我收到此错误:

  

TypeError:只能将整数标量数组转换为标量索引

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

2 个答案:

答案 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)),因为范围将输入作为数字而不是另一个范围。