【问题标题】:Python, numpy, string decomposition (string from Abaqus AFXComTableKeyword.getValues())Python、numpy、字符串分解(来自 Abaqus AFXComTableKeyword.getValues() 的字符串)
【发布时间】:2013-05-06 13:05:30
【问题描述】:

getValues() 方法中,AFXComTableKeyword 类返回如下字符串:

test = "('mat_huehne_2008', '0.125', '24.0'),('', '', '-24.0'),('', '', '41.0')"+\
       ",('', '', '-41.0'),('', '', ''),('', '', ''),('', '', ''),('','', ''),"+\
       "('', '', ''),('', '', ''),('', '', ''),('', '', ''),('', '', ''),"+\
       "('', '', ''),('', '', ''),('', '', ''),('', '', ''),('', '', ''),"+\
       "('', '', ''),('', '', ''),('', '', ''),('', '', ''),('', '', ''),"+\
       "('', '', ''),('', '', ''),('', '', ''),('', '', ''),('', '', ''),"+\
       "('', '', ''),('', '', ''),('', '', ''),('', '', ''),('', '', ''),"+\
       "('', '', ''),('', '', ''),('', '', ''),('', '', ''),('', '', ''),"+\
       "('', '', ''),('', '', '')"

最后,我们需要shape=(40,3) 中的numpy.array,对于这种情况,它看起来像:

 test = [['mat_huehne_2008', '0.125',  '24.0'],
         [               '',      '', '-24.0'],
         ... and so on ... ]

有谁知道在 Python / Numpy 中执行此操作的捷径吗?

【问题讨论】:

    标签: python string numpy


    【解决方案1】:

    我会使用ast 将字符串评估为元组。那么很简单:

    >>> import ast
    >>> import numpy as np
    >>> np.array(ast.literal_eval(test))
    array([['mat_huehne_2008', '0.125', '24.0'],
           ['', '', '-24.0'],
           ['', '', '41.0'],
           ['', '', '-41.0'],
           ...
    

    【讨论】:

    • @SaulloCastro -- 是的,eval 也可以,但容易受到各种攻击。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多