【问题标题】:Convert string to 2 dimensional numpy array将字符串转换为二维 numpy 数组
【发布时间】:2020-07-12 23:47:38
【问题描述】:

我有一个从 .mat 文件加载的字符串,格式如下:

(array([172.169, 73.2]), array([128.83, 102.31]), array([143.49, 124.43]), array([186.83, 95.69]), 'R', array([], dtype=float64))

有什么方法可以直接将其转换为 numpy 二维数组,而无需解析整个字符串并手动删除“数组”? numpy.fromstringnumpy.frombuffer 都不会在这里工作。

【问题讨论】:

  • 如果是字符串,为什么不用引号括起来?
  • “R”是错字吗?
  • @DavidBuck 很相似,但不完全一样,因为要将其转换为列表,我无论如何都必须解析字符串。
  • @Back2Basics 不,R 不是错字。这是手的注释文件。 R 表示文件用于右手。它不在最终数组中,我可以手动删除它

标签: python arrays string numpy


【解决方案1】:

您可以将np.fromstring 与正则表达式一起使用:

import re

# s is your string
np.fromstring(', '.join(re.findall(r'\[(.+?)\]', s)), sep =', ').reshape((2, 2, 2))

输出:

array([[[172.169,  73.2  ],
        [128.83 , 102.31 ]],

       [[143.49 , 124.43 ],
        [186.83 ,  95.69 ]]])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多