gpt4 book ai didi

python - 对数组的各个列进行排序

转载 作者:行者123 更新时间:2023-11-28 22:09:03 26 4
gpt4 key购买 nike

给定一个输入

array = [
[1,2,-1,-1,2],
[3,-1,-1,-1,-1],
[-1,-1,-1,3,2]
]

我想把它改成这样:

new_array = [
[-1,-1,-1,-1,-1],
[1,-1,-1,-1,2],
[3,2,-1,3,2]
]

也就是说,对于每一列,我希望元素保留在它们的相对位置,但将任何 -1 移动到列的“顶部”。

由于之前的一个问题,我知道我可以使用类似sorted(array, key=lambda x: x==-1) 的方式对所有- 1 值到顶部。我还可以使用 sorted(array, key = lambda x: x[i]) 根据 i 列对数组进行排序。但是,即使将它们组合起来也无法达到我想要的效果,因为我想根据上面的 -1 键分别对每一列进行排序。我试过使用一些不同的 lambda 函数,但这是我第一次看到它们,所以我还不确定它们是如何工作的。任何指针将不胜感激。

最佳答案

你可以使用 numpy

import numpy as np

array = [
[1,2,-1,-1,2],
[3,-1,-1,-1,-1],
[-1,-1,-1,3,2]]

np_array = np.array(array)
sorted_np_array = np.sort(np_array, axis=0)

sorted_array = sorted_np_array.tolist()

关于python - 对数组的各个列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57905947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com