代码之家  ›  专栏  ›  技术社区  ›  Josiah Yoder DWS

尝试在numpy数组中使用整数列表时出现类型错误:只有整数标量数组才能转换为标量索引

  •  3
  • Josiah Yoder DWS  · 技术社区  · 6 年前

    以下代码:

    x = list(range(0,10))
    random.shuffle(x)
    ind = np.argsort(x)
    x[ind]
    

    产生错误:类型错误:只有整数标量数组才能转换为标量索引

    请注意,我的问题与问题不同, “ numpy array TypeError: only integer scalar arrays can be converted to a scalar index “,这是在尝试更复杂的事情。

    我在这个问题上的错误是,我试图在一个普通的python列表上使用一个索引列表——请看我的答案。我预计它发生的范围远不止是使用范围和随机播放。

    1 回复  |  直到 6 年前
        1
  •  5
  •   Josiah Yoder DWS    6 年前

    问题是我正在尝试索引 x 一个普通的python列表,就好像它是一个numpy数组。要修复它,只需转换 X 到numpy数组:

    x = list(range(0,10))
    random.shuffle(x)
    ind = np.argsort(x)
    x = np.array(x) # This is the key line
    x[ind]
    

    (这已经发生在我身上两次了。)