我有一个从.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.fromstring
和numpy.frombuffer
都不能在这里工作。
答案 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 ]]])