Python - 列表中的字符串到 numpy 数组
Python - strings in list to numpy array
我有以下 'list1' 个字符串列表:
list1= ['mz', '-3956901.50', '-1310316.62', '-505251.812', '-6262072.50', '-0.781772032E+10-0.113921731E+11']
我想将第 2 列到最后一列转换为 numpy 数组:
np.asarray(list[1:],dtype='float')
问题是由于列表中的最后一项,我得到了 ValueError。
如何首先将最后一项拆分为两个字符串(由于分隔符中缺少 space)?
对于 list1 的最后一项,您可以使用 eval()
函数将其转换为数字,然后您的代码将起作用:
list2 = np.asarray([eval(x) for x in list1[1:]],dtype='float')
结果是:
array([-3.95690150e+06, -1.31031662e+06, -5.05251812e+05, -6.26207250e+06,
-1.92098934e+10])
您可以执行以下操作:
- 通过分隔符“-”拆分列表中的最后一个值
- 在非空字符串的情况下添加分隔符(拆分也会 return 空字符串)
- 删除列表中的最后一个值并添加拆分字符串
list1= ['mz', '-3956901.50', '-1310316.62', '-505251.812', '-6262072.50', '-0.781772032E+10-0.113921731E+11']
delimeter = "-"
splited_string_with_delemeter = [delimeter+splited_string for splited_string in list1[-1].split(delimeter) if splited_string]
list2 = list1[:-1] + splited_string_with_delemeter
然后您就可以创建 NumPy 数组了:
np.asarray(list2[1:],dtype='float')
结果是:
array([-3.95690150e+06, -1.31031662e+06, -5.05251812e+05, -6.26207250e+06,
-7.81772032e+09, -1.13921731e+10])
我有以下 'list1' 个字符串列表:
list1= ['mz', '-3956901.50', '-1310316.62', '-505251.812', '-6262072.50', '-0.781772032E+10-0.113921731E+11']
我想将第 2 列到最后一列转换为 numpy 数组:
np.asarray(list[1:],dtype='float')
问题是由于列表中的最后一项,我得到了 ValueError。 如何首先将最后一项拆分为两个字符串(由于分隔符中缺少 space)?
对于 list1 的最后一项,您可以使用 eval()
函数将其转换为数字,然后您的代码将起作用:
list2 = np.asarray([eval(x) for x in list1[1:]],dtype='float')
结果是:
array([-3.95690150e+06, -1.31031662e+06, -5.05251812e+05, -6.26207250e+06,
-1.92098934e+10])
您可以执行以下操作:
- 通过分隔符“-”拆分列表中的最后一个值
- 在非空字符串的情况下添加分隔符(拆分也会 return 空字符串)
- 删除列表中的最后一个值并添加拆分字符串
list1= ['mz', '-3956901.50', '-1310316.62', '-505251.812', '-6262072.50', '-0.781772032E+10-0.113921731E+11']
delimeter = "-"
splited_string_with_delemeter = [delimeter+splited_string for splited_string in list1[-1].split(delimeter) if splited_string]
list2 = list1[:-1] + splited_string_with_delemeter
然后您就可以创建 NumPy 数组了:
np.asarray(list2[1:],dtype='float')
结果是:
array([-3.95690150e+06, -1.31031662e+06, -5.05251812e+05, -6.26207250e+06,
-7.81772032e+09, -1.13921731e+10])