【问题标题】:Error only integer scalar arrays can be converted to a scalar index错误只有整数标量数组可以转换为标量索引
【发布时间】:2018-05-29 05:56:32
【问题描述】:

我正在使用 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: 只有整数标量数组可以转换为标量索引

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

【问题讨论】:

  • 您确定需要range(kk) 电话吗?你不能在for 循环中使用kk 吗?

标签: python python-3.x


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 2021-03-26
      • 1970-01-01
      • 2021-01-27
      • 2019-04-26
      • 2017-12-15
      相关资源
      最近更新 更多