Python numpy在1d数组中转换2d数组排序
我有一个2D numpy数组,我想把这个数组改成一个1D数组,然后排序。例如:Python numpy在1d数组中转换2d数组排序,python,arrays,sorting,numpy,Python,Arrays,Sorting,Numpy,我有一个2D numpy数组,我想把这个数组改成一个1D数组,然后排序。例如: A = [[1,0,2], [0,3,0]] 我希望这样: B = [3,2,1,0,0,0] 你知道我如何使用python模块做到这一点,而不是编写排序算法或类似的东西吗 谢谢,假设您希望按降序对它们进行排序- In [127]: A Out[127]: [[1, 0, 2], [0, 3, 0]] In [128]: B = np.sort(np.array(A).ravel()) In [12
A = [[1,0,2],
[0,3,0]]
我希望这样:
B = [3,2,1,0,0,0]
你知道我如何使用python模块做到这一点,而不是编写排序算法或类似的东西吗
谢谢,假设您希望按降序对它们进行排序-
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
对数组进行排序,然后反转索引以实现降序排序的效果。这是我的解决方案:
你可以在这里看到我的代码:球被18秒击败+1@EdChum哈哈,我想是吧!:)很抱歉,我今天的票数不足:(所以我无法投票,几小时后会记得,我将删除我的答案now@EdChum啊,没关系!不过,我喜欢你的一句台词。
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