我对Python语言很陌生,想知道如何使用以下内容
(1) y = [some vector]
(2) z = [some other vector]
(3) [ynew,indx] = sort(y)
(4) znew = z(indx)
我可以做第1,2和4行,但第3行给我配合。有什么建议。我所寻找的不是用户编写的功能,而是语言本身固有的东西 感谢
答案 0 :(得分:5)
将NumPy用于第3行,假设y
是行向量,否则需要axis=0
:
ynew=y.sort(axis=1)
indx=y.argsort(axis=1)
答案 1 :(得分:0)
您可以尝试执行以下操作:
import numpy as np
y = [1,3,2]
z = [3,2,1]
indx = [i[0] for i in sorted(enumerate(y), key=lambda x:x[1])]
print(indx)
#convert z to numpy array in order to use np.ix_ function
z = np.asarray(z)
znew = z[np.ix_(indx)]
print(znew)
结果:
#the indx is
[0, 2, 1]
#the znew is
array([3, 1, 2])