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

loading...


2

我使用的是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

    使用 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矢量化功能 .


  • 0

    使用 for i in kk 而不是 for i in range(kk) 因为 kk 已经是一个范围 . 你试图做 for i in range(np.arange(1, 17)) 这没有意义,因为范围输入数字,而不是另一个范围 .

loading...

评论

暂时没有评论!