回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有两个纽比阵列。一个是N乘M,另一个是N乘1。我希望能够按M维中的任何一个对第一个列表进行排序,并且我希望列表保持相同的顺序(即,如果我交换了list1的第1行和第15行,我希望list2的第1行和第15行也交换)</p>
<p>例如:</p>
<pre><code>import numpy as np
a = np.array([[1,6],[3,4],[2,5]])
b = np.array([[.5],[.8],[.2]])
</code></pre>
<p>然后,我希望能够按<code>a</code>中每行的第一个元素进行排序,以给出:</p>
^{pr2}$
<p>或者按<code>a</code>中每一行的第二个元素排序:</p>
^{3}$
<p>我看到很多类似的问题,其中两个列表都是一维的,比如这个<a href="https://stackoverflow.com/questions/9764298/is-it-possible-to-sort-two-listswhich-reference-each-other-in-the-exact-same-w">question</a>。或者关于列表排序的问题,例如<a href="https://stackoverflow.com/questions/3398589/sorting-a-list-of-lists-in-python">this one</a>。但我找不到我要找的东西。在</p>
<p>最终我得到了这样的结果:</p>
<pre><code>import numpy as np
a = np.array([[1,6],[3,4],[2,5]])
b = np.array([[.5],[.8],[.2]])
package = zip(a,b)
print package[0][1]
sortedpackage= sorted(package, key=lambda dim: dim[0][1])
d,e = zip(*sortedpackage)
print d
print e
</code></pre>
<p>现在这就产生了我想要的d和e:</p>
<pre><code> d = [[3,4],[2,5],[1,6]]
e = [[.8],[.2],[.5]
</code></pre>
<p>但我不明白为什么。<code>print package[0][1]</code>给出了0.5——这不是我排序所依据的元素。为什么会这样?我所做的一切是否稳健?在</p>