我试图把数组放在另一个数组的顺序。例如,如果我有:指定顺序numpy数组
arr1 = np.array(['a', 'b', 'c'])
index = np.array([2, 1, 0])
我期望的结果,ARR2,是[ 'C', 'B', 'A'],使得:
arr2[index[i]] == arr1[i]
我试图把数组放在另一个数组的顺序。例如,如果我有:指定顺序numpy数组
arr1 = np.array(['a', 'b', 'c'])
index = np.array([2, 1, 0])
我期望的结果,ARR2,是[ 'C', 'B', 'A'],使得:
arr2[index[i]] == arr1[i]
可以简单地传递选择器阵列索引字符数组:
>>> import numpy as np
>>> arr1 = np.array(['a', 'b', 'c'])
>>> index = np.array([2, 1, 0])
>>> arr1[index]
array(['c', 'b', 'a'],
dtype='|S1')
尝试这种情况:
[arr1[i] for i in index]
不返回数组,对于numpy数组效率不高。一般规则:不要将numpy数组视为python列表。几乎总是有一个更好的方法来做到这一点与numpy builtins。 – JoshAdel 2012-03-14 18:57:28
或许有在我的代码中有一个错误,但是当我运行这个时,我得到以下关系,而不是期望的关系:arr2 [i] == arr1 [index [i]] – mike 2012-03-14 19:04:23
你能用所需的输出更新你的问题吗? – jterrace 2012-03-14 19:06:01
我认为这个问题可能是在代码之前的几行 - 谢谢! – mike 2012-03-14 20:02:32