回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图对一个2×2的Numpy数组进行一些优雅的排序,这样字母就可以根据它们的起始浮点值进行分组。但是浮点值应该从最高到最低排序</p>
<pre><code>this = {"z": 1.6, "aaaaaaaaaaaaa": 0, "w": 6, "v": 4}
orThis = [['z' '1.6']
['aaaaaaaaaaaaa' '0']
['w' '6']
['v' '4']]
shouldBecomeThis = [['w', 6. ],
['v', 4. ],
['z', 1.6],
['aaaaaaaaaaaaa', 0 ]]
</code></pre>
<p>结果应该看起来像这样的原因是因为我想把它输入到一个数据帧中</p>
<pre><code>import pandas as pd
def plotTable(data, header):
fig, ax = plt.subplots()
fig.patch.set_visible(False)
ax.axis('off')
ax.axis('tight')
df = pd.DataFrame(data, columns=["gene", header])
#top line throws error if i feed it data= [('w', 6. ) ('v', 4. ) ('z', 1.6) ('aaaaaaaaaaaaa', 0. )]
ax.table(cellText=df.values, colLabels=df.columns, loc='center')
fig.tight_layout()
plt.show()
foo = [['w', 6. ],
['v', 4. ],
['z', 1.6],
['aaaaaaaaaaaaa', 0 ]]
plotTable(foo, "SomeTableHeader")
#Plots a table.
</code></pre>
<pre><code>sortData = {"z": 1.6, "aaaaaaaaaaaaa": 0, "w": 6, "v": 4}
npArray = np.array(list(sortData.items()))
sortData = np.array(list(sortData.items()), dt)
sortData.view('<U16,<f8').sort(order=['f1'], axis=0)
sortData = np.flip(sortData, 0)
print(sortData)
#best i got so far: [('w', 6. ) ('v', 4. ) ('z', 1.6) ('aaaaaaaaaaaaa', 0. )]
</code></pre>
<p>我已经查过这个了,但它无法工作:<a href="https://stackoverflow.com/questions/2828059/sorting-arrays-in-numpy-by-column">Sorting arrays in NumPy by column</a></p>