【发布时间】:2015-04-17 22:06:20
【问题描述】:
我有一个 2D numpy 数组,我想将此数组更改为已排序的 1D。例如:
A = [[1,0,2],
[0,3,0]]
我希望是这样的:
B = [3,2,1,0,0,0]
知道如何使用 python 模块做到这一点,而不是编写排序算法或类似的东西吗?
谢谢
【问题讨论】:
标签: python arrays sorting numpy
我有一个 2D numpy 数组,我想将此数组更改为已排序的 1D。例如:
A = [[1,0,2],
[0,3,0]]
我希望是这样的:
B = [3,2,1,0,0,0]
知道如何使用 python 模块做到这一点,而不是编写排序算法或类似的东西吗?
谢谢
【问题讨论】:
标签: python arrays sorting numpy
假设您希望按降序对它们进行排序 -
In [127]: A
Out[127]: [[1, 0, 2], [0, 3, 0]]
In [128]: B = np.sort(np.array(A).ravel())
In [129]: B[::-1]
Out[129]: array([3, 2, 1, 0, 0, 0])
基本上,它包括三个步骤:使用ravel() 将数组展平,使用np.sort 对其进行排序,然后将索引反向以获得descending 排序的效果。
【讨论】:
A = [[1,0,2], [0,3,0]]
B = []
for i in range(len(A)):
for j in range(len(A[i])):
B.append(A[i][j])
B.sort(cmp=None, key=None, reverse=True)
print B
你可以在这里看到我的代码运行:http://ideone.com/P8xBPK
【讨论】: