【问题标题】:get the argmax from an array and save it - python从数组中获取 argmax 并保存 - python
【发布时间】:2017-12-20 06:01:43
【问题描述】:

我有一个像下面这样的数组。如何从该数组中获取 argmax 并将其保存为数据框。

数组

([[  4.33578761e-03,   1.11002535e-01,   1.18002132e-01,
      2.23158062e-01,   3.57010156e-01,   9.33912754e-01],
   [  3.21856714e-05,   3.46616306e-03,   4.58798464e-03,
      7.65424687e-03,   1.02789648e-01,   9.99610841e-01]], dtype=float32) was passed

【问题讨论】:

    标签: python arrays argmax


    【解决方案1】:

    将 n 视为 numpy 数组

    import numpy as np
    n = np.array([[  4.33578761e-03,   1.11002535e-01,   1.18002132e-01,
          2.23158062e-01,   3.57010156e-01,   9.33912754e-01],
       [  3.21856714e-05,   3.46616306e-03,   4.58798464e-03,
          7.65424687e-03,   1.02789648e-01,   9.99610841e-01]], dtype=float)
    
    # printing argmax at axis = 0
    print(np.argmax(n, axis=0))
    #print(n.argmax(axis=0))
    

    a_max = np.argmax(n, axis=0)
    np.save(open("your_file_path", "w"), a_max)
    

    加载

    a_max = np.load(open("your_file_path"))
    

    参考文献

    【讨论】:

    • 你能保存打印吗?
    • 如果您的意思是将argmax 的结果保存在变量中,那么可以。
    • 你怎么能做到这一点? @Wazzzy
    【解决方案2】:

    我相信你需要:

    print (arr.argmax(axis=1))
    [5 5]
    
    print (arr.argmax(axis=0))
    [0 0 0 0 0 1]
    

    先获取argmax再使用DataFrame构造函数:

    print (pd.DataFrame(arr.argmax(axis=0), columns=['a']))
       a
    0  0
    1  0
    2  0
    3  0
    4  0
    5  1
    
    print (pd.DataFrame(arr.argmax(axis=0)[None, :]))
       0  1  2  3  4  5
    0  0  0  0  0  0  1
    
    print (pd.DataFrame(arr.argmax(axis=1), columns=['a']))
       a
    0  5
    1  5
    

    或者创建DataFrame并调用idxmax

    print (pd.DataFrame(arr).idxmax().to_frame('a'))
    #same as
    #print (pd.DataFrame(arr).idxmax(axis=0).to_frame('a'))
       a
    0  0
    1  0
    2  0
    3  0
    4  0
    5  1
    
    print (pd.DataFrame(arr).idxmax().to_frame(0).T)
       0  1  2  3  4  5
    0  0  0  0  0  0  1
    
    
    print (pd.DataFrame(arr).idxmax(axis=1).to_frame('a'))
       a
    0  5
    1  5
    

    【讨论】:

      猜你喜欢
      • 2022-06-28
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 2016-11-15
      • 2020-04-09
      • 2015-03-06
      相关资源
      最近更新 更多