python - 是否可以像字典字符匹配那样对 Numpy 2D 数组进行排序
问题描述
我想对它们进行排序,如下所示:
- 首先它会检查'0th' col & 如果所有的值都不同,那么它将通过上下交换行来排序。
- 如果'0th'列包含相同的值,那么它将把它们放置在连续的行中&排序取决于第一个col的值。如果进一步匹配,则过程继续 f
- 由于行索引 2 和 3 在 0、1、2 列中具有相同的值。因此,通过检查第 3 列,它决定了这两行的行位置。请帮忙。提前致谢。注意:当我们将字典中的单词与搜索进行比较时,我也想这样比较。
输入数组:
[23.339, 0.015, 0.008, 0.0071, 0.079, 0.001]
[20.759, 0.024, 0.020, 0.0161, 0.1282, 0.030]
[17.352, 0.063, 0.024, 0.0187, 0.1484, 0.039]
[17.352, 0.063, 0.024, 0.008, 0.128, 0.035]
[23.339, 0.015, 0.001, 0.204, 1.819, 0.762]
[17.352, 1.645, 1.045, 0.779, 1.106, 0.821]
[14.556, 0.061, 0.058, 0.0071, 0.1016, 0.005]
输出数组:
[14.556, 0.061, 0.058, 0.0071, 0.1016, 0.005]
[**17.352, 0.063, 0.024,** 0.008, 0.128, 0.035]
[**17.352, 0.063, 0.024,** 0.0187, 0.1484, 0.039]
[17.352, 1.645, 1.045, 0.779, 1.106, 0.821]
[20.759, 0.024, 0.020, 0.0161, 0.1282, 0.030]
[**23.339, 0.015,** 0.001, 0.204, 1.819, 0.762]
[**23.339, 0.015,** 0.008, 0.0071, 0.079, 0.001]
解决方案
是的,你可以这样做:
import pandas as pd
x =[[23.339, 0.015, 0.008, 0.0071, 0.079, 0.001],
[20.759, 0.024, 0.020, 0.0161, 0.1282, 0.030],
[17.352, 0.063, 0.024, 0.0187, 0.1484, 0.039],
[17.352, 0.063, 0.024, 0.008, 0.128, 0.035],
[23.339, 0.015, 0.001, 0.204, 1.819, 0.762],
[17.352, 1.645, 1.045, 0.779, 1.106, 0.821],
[14.556, 0.061, 0.058, 0.0071, 0.1016, 0.005]]
df = pd.DataFrame(x)
df.sort_values(by=list(df.keys()), inplace=True)
print(df)
# 0 1 2 3 4 5
#6 14.556 0.061 0.058 0.0071 0.1016 0.005
#3 17.352 0.063 0.024 0.0080 0.1280 0.035
#2 17.352 0.063 0.024 0.0187 0.1484 0.039
#5 17.352 1.645 1.045 0.7790 1.1060 0.821
#1 20.759 0.024 0.020 0.0161 0.1282 0.030
#4 23.339 0.015 0.001 0.2040 1.8190 0.762
#0 23.339 0.015 0.008 0.0071 0.0790 0.001
推荐阅读
- c# - 游戏对象销毁在析构函数内失败
- jupyter-notebook - 如何在等式 Jupyter 笔记本的文本中添加空格?
- python-3.x - ValueError:不支持的图像形状:()
- javascript - 为什么 [scrollIntoView()] 滚动不顺畅?
- amazon-web-services - 将特定记录从 RDS 存档到 AWS 中更便宜的存储的最佳策略
- c# - Google cloud video-intelligence, PollUntilCompleted, and ResourceExhausted, Received message greater than max (X vs. Y)
- c++ - 读取文件中所有可能的 HEX 16 字节序列并打印它们中的每一个
- conda - conda 有没有办法只列出显式安装的包而不列出作为依赖项安装的包?
- linux - 如何在 Linux 上的 VirtualBox 上在 Windows 上运行 Docker?
- git - git pull 没有改变任何东西