当前位置: 首页 > 面试题库 >

如何在python中按行对二维数组排序?

郎增
2023-03-14
问题内容

我有2d数组,尺寸为3x10,我想按从低到高的第二行中的值进行排序。


问题答案:

Python本身没有“
2d数组”-它具有(1d)内置列表,以及(1d)标准库模块array中的数组。有第三方库,例如numpy它确实提供了Python的使用多维数组,当然你会提这样的第三方库,如果你是“Python中的”使用其中的一部分,而不是只是说,
正确的 ? -)

因此,我假设“ 2d数组”是指列表列表,例如:

lol = [ range(10), range(2, 12), range(5, 15) ]

或类似内容-
即包含3个项目的列表,每个项目都是包含10个项目的列表,而“第二行”将是子列表项lol[1]。是的,有很多假设,但是您的问题是如此的令人困惑,以至于无法避免做出假设-
如果您不喜欢尝试读心术的人(可能是失败的话),请编辑您的Q以更精确地进行澄清,并举一个例子!因为您目前无法避免。

因此,在这些假设下,您可以按照对第二个子列表进行排序所需的顺序对3个子列表中的每个列表进行排序,例如:

indices = range(10)
indices.sort(key = lol[1].__getitem__)
for i, sublist in enumerate(lol):
  lol[i] = [sublist[j] for j in indices]

此处的一般方法是对索引范围进行排序,然后仅使用该适当排序的范围对正在播放的所有子列表进行重新排序。

如果您实际上有其他问题,当然会有不同的解决方案;-)。



 类似资料:
  • 有人能帮我吗?我尝试按内部数组的长度(降序)对二维数组进行排序。 此数组: 应该会产生这个排序的数组: 你有提示吗?

  • 问题内容: 如何按“订单”键的值对该数组排序?即使这些值当前是连续的,也不会总是如此。 问题答案: 尝试使用usort,如果您仍然使用PHP5.2或更早版本,则必须首先定义一个排序函数: 从PHP 5.3开始,您可以使用匿名函数: 最后,在PHP 7中,您可以使用spaceship运算符: 要将其扩展到多维排序,如果第二个/第三个排序元素为零,请参考第二个/第三个排序元素-下文将详细说明。您也可以

  • 问题内容: 有没有一种方法可以使用sort()方法或任何其他方法按列对列表进行排序?可以说我有清单: 我想对其进行排序,使其看起来像这样: 这样做的最佳方法是什么? 编辑: 现在,我遇到索引超出范围错误。我有一个二维数组,可以说1000行b 3列。我想根据第三列对其进行排序。这是正确的代码吗? 问题答案: 是。该内置接受的说法: 请注意,将返回一个新列表。如果要就地排序,请使用列表的方法(也可以方

  • 问题内容: 请原谅我这是多余的还是超基本的。我要从R进入Python / Numpy,并且很难在脑海里翻转事物。 我有一个维数组,我想使用索引值的另一个n维数组进行排序。我知道我可以将其包装成一个循环,但是似乎应该有一种非常简洁的Numpyonic方式将其击败并提交。这是设置n = 2的问题的示例代码: 所以现在我有一个2 x 5的随机数数组和2 x 5的索引。我已经阅读了约10次帮助,但显然我的

  • 问题内容: 我有一个形状为(N,2)的2D numpy数组,其中包含N个点(x和y坐标)。例如: 我想对它进行排序,以使我的点按x坐标排序,然后在x坐标相同的情况下按y排序。因此,上面的数组应如下所示: 如果这是正常的Python列表,我将简单地定义一个比较器来执行我想要的操作,但是据我所知,numpy的sort函数不接受用户定义的比较器。有任何想法吗? 编辑:感谢您的想法!我建立了一个具有100

  • 问题内容: 我已将CSV数据加载到多维数组中。这样,每个“行”都是一条记录,每个“列”都包含相同类型的数据。我正在使用下面的功能加载我的CSV文件。 我需要能够指定要排序的列,以便重新排列行。其中一列包含格式为的日期信息,我希望能够以最新日期为第一行进行排序。 问题答案: 您可以使用array_multisort() 尝试这样的事情: 对于PHP> = 5.5.0,只需提取列进行排序即可。无需循环