如下代码:

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

产生错误:TypeError:只能将整数标量数组转换为标量索引

请注意,我的问题与问题不同,
numpy array TypeError: only integer scalar arrays can be converted to a scalar index”,它正在尝试更复杂的操作。

我在这个问题上的错误是我试图在普通的python列表上使用索引列表-请参阅我的答案。我希望它发生的范围比仅仅使用范围和随机播放要广泛得多。

最佳答案

问题是我试图为普通的Python列表x编制索引,就好像它是一个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]

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

关于python - 使用NumPy数组: only integer scalar arrays can be converted to a scalar index为列表编制索引时发生TypeError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51638332/

10-12 23:23