【问题标题】:How to parse this array from a ML result?如何从 ML 结果中解析这个数组?
【发布时间】:2020-06-21 11:02:51
【问题描述】:

如何解析这个打印出来的?可以想象它需要分配给一个变量。

(array([[1., 1., 1., 1.]]), array([[1605, 1606, 1698, 1607]], dtype=int64))

例如,如何解析 1605?

和/或,如何从第二个数组中解析 1605、1606、1698、1607?

这是第一次使用的 NLP 结果,非常感谢您的回答。谢谢。

附言。为了澄清我的问题,这个输出是要在虚拟环境中解析的众多 NN NLP 输出之一,在应用程序的 API 中运行。那么,鉴于此输出,如何仅解析第二个数组,即要从 df 返回的行?即:不能手动分离数组。 Gervais 的解决方案在实践中通过手动输入“np.”来工作,但是这种解决方案在重复的生产环境中似乎不可持续,至少不使用字符串格式。任何进一步了解在部署应用程序时在没有 numpy 的情况下自动解析也将不胜感激。谢谢。

【问题讨论】:

    标签: python arrays parsing nlp int64


    【解决方案1】:

    这两个很可能代表非常不同的东西,所以我个人会通过执行多重分配来将它们分开:

    import numpy as np
    
    x = (np.array([[1., 1., 1., 1.]]), 
         np.array([[1605, 1606, 1698, 1607]], dtype=np.int64))
    
    a, b = x
    

    然后就可以正常索引访问第二部分的第一个元素了:

    b[0][0]
    
    Out[9]: 1605
    

    【讨论】:

    • 非常感谢您非常及时的回复和解决方案。该解决方案效果很好。然而,由于最初的代码是一个旨在虚拟运行的 API 中的神经网络的输出(请原谅我没有发布整个 NN 脚本),您是否对如何合并“np.”有一个很好的想法。进入功能结果?我尝试了字符串格式化,并且代码打印出来就像你的解决方案: "x = "({np}array([[1., 1., 1., 1.]]), {np}array([[1605, 1606 , 1698, 1607]], dtype={np}int64))".format(np = 'np.')" 但是,在尝试解析 x 时:ValueError: too many values to unpack (expected 2)
    • 哦,我不知道,很遗憾。非常抱歉。
    • 我只是放了np 来重现你的错误,你可能甚至不需要它
    • 没问题,先生,仍然很感激。 np 是必要的。感谢您向我们展示如何打开它。在这个笼罩的 NLP 场景中,ML 工程师能够通过在函数中使用模型将输出更改为 json 转储。
    【解决方案2】:
    import numpy as np
    
    a = np.array([[1,1,1,1]], int)
    b = np.array([[1605, 1606, 1698, 1607]], int)
    c=[a,b]
    d=np.vstack(c)
    print('\n', c)
    print('\n', d)
    print('\n', d[1,0])
    print('\n', d[1,2])
    

    #输出

     [array([[1, 1, 1, 1]]), array([[1605, 1606, 1698, 1607]])]
    
     [[   1    1    1    1]
     [1605 1606 1698 1607]]
    
     1605
    
     1698
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多