【问题标题】:Python numpy convert 2d array in 1d array sortedPython numpy 将 2d 数组转换为 1d 数组排序
【发布时间】: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


    【解决方案1】:

    假设您希望按降序对它们进行排序 -

    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 排序的效果。

    【讨论】:

    • 18 秒 +1 击球次数
    • @EdChum 哈哈碰巧我猜! :)
    • 对不起,我今天的票用完了 :( 所以我不能投票,几个小时后会记得,现在要删除我的答案
    • @EdChum 啊,没关系!好吧,我喜欢你的单线。
    【解决方案2】:

    这是我的解决方案:

    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

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 2021-05-27
      • 2017-11-02
      • 2017-07-29
      • 1970-01-01
      • 2023-03-14
      • 2012-05-09
      • 2022-12-21
      相关资源
      最近更新 更多