将字符串转换为二维numpy数组

时间:2020-04-01 09:09:11

标签: python arrays string numpy

我有一个从.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 2D数组,而无需解析整个字符串并手动删除“数组”? numpy.fromstringnumpy.frombuffer都不能在这里工作。

1 个答案:

答案 0 :(得分:2)

您可以将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 ]]])