你好,我有list
这样:
B=
["('33', '207')",
"('33', '408')",
"('33', '408')",
"('33', '408')",
"'NaN'",
"('33', '207')"]
我想返回一个整数数组,如下所示:
B1 =
[33, 207,
33, 408,
33, 408,
33, 408,
NaN, Nan,
33, 408]
我正在尝试将regex
用作B1[0]=re.findall(r'\d+', B[0])
答案 0 :(得分:0)
只需使用拆分:
{{1}}
答案 1 :(得分:0)
谢谢丹尼尔。但是,我也可以:
B= ["('31', '265')",
"('31', '265')",
"('31', '265')",
"('31', '265')",
"('31', '265')",
nan,
nan,
nan,
nan,
nan]
答案 2 :(得分:0)
如果项目的类型是元组,则可以使用ast.literal_eval
将字符串转换为字符串数字的元组,然后使用numpy.array()
和array.astype()
将元组转换为float数组(使用isinstance()
检查类型,然后重复该项并转换为浮点类型):
>>> from ast import literal_eval
>>> import numpy as np
>>> np.array([np.array(i).astype(float) if isinstance(i,tuple) else np.repeat(np.array(i).astype(float),2) for i in map(literal_eval,B)])
array([[ 33., 207.],
[ 33., 408.],
[ 33., 408.],
[ 33., 408.],
[ nan, nan],
[ 33., 207.]])