我有一些Unicode字符串数组,就像这样
u'[(12520, 12540), (16600, 16620)]'
需要将这些转换为numpy数组。 类似的问题解决了已经有Unicode元素数组的问题,但在我的情况下,括号是字符串的一部分。是否有办法直接将其转换为numpy数组(int类型),而不必手动删除括号?
from ast import literal_eval
import numpy as np
s=u'[(12520, 12540), (16600, 16620)]'
arr= np.array(literal_eval(s))
import ast
my_str = u'[(12520, 12540), (16600, 16620)]'
my_nparray = np.array(ast.literal_eval(my_str))
print(my_nparray)
[[12520 12540]
[16600 16620]]
np.array(literal_eval(s))
- Padraic Cunninghamrepr
调用的输出,则使用literal_eval
是完全正确的反转方式。如果它是其他语言,通常但不总是有效作为Python源代码,则使用literal_eval
是一个坏主意。有时候你能做的最好的就是猜测,但这永远不应该是你的首选方案。 - abarnert