如何将从数组中提取的数据转换为python中可用的数字?
所以我得到了一个函数,它从一个返回三个不同数组的txt文档中提取数据如何将从数组中提取的数据转换为python中可用的数字?,python,arrays,numpy,matplotlib,text-files,Python,Arrays,Numpy,Matplotlib,Text Files,所以我得到了一个函数,它从一个返回三个不同数组的txt文档中提取数据 def extract_data(filename): infile= open('approx_derivative_sine.txt', 'r') dx = [] abserror = [] n = [] for line in infile: words=line.split() #words[0]: delta_x, words[1]:
def extract_data(filename):
infile= open('approx_derivative_sine.txt', 'r')
dx = []
abserror = []
n = []
for line in infile:
words=line.split()
#words[0]: delta_x, words[1]: value for delta_x
dx.append(words[1])
abserror.append(words[7])
n.append(words[10])
delta_x=np.array(dx)
abs_error=np.array(abserror)
n_array=np.array(n)
return delta_x,abs_error,n_array
infile = open('approx_derivative_sine.txt', 'r')
result=extract_data(infile)
print(result)
现在这是印刷品:
(array(['1.000000e-01,', '1.000000e-02,', '1.000000e-03,', '1.000000e-04,',
'1.000000e-05,', '1.000000e-06,', '1.000000e-07,', '1.000000e-08,',
'1.000000e-09,', '1.000000e-10,', '1.000000e-11,', '1.000000e-12,',
'1.000000e-13,', '1.000000e-14,', '1.000000e-15,', '1.000000e-16,',
'1.000000e-17,', '1.000000e-18,', '1.000000e-19,'], dtype='<U13'), array(['4.409811e-02,', '4.338424e-03,', '4.330960e-04,', '4.330210e-05,',
'4.330133e-06,', '4.330281e-07,', '4.300676e-08,', '3.038736e-09,',
'4.137019e-08,', '4.137019e-08,', '4.137019e-08,', '4.445029e-05,',
'3.996389e-04,', '3.996389e-04,', '5.511151e-02,', '5.000000e-01,',
'5.000000e-01,', '5.000000e-01,', '5.000000e-01,'], dtype='<U13'), array(['n=1', 'n=2', 'n=3', 'n=4', 'n=5', 'n=6', 'n=7', 'n=8', 'n=9',
'n=10', 'n=11', 'n=12', 'n=13', 'n=14', 'n=15', 'n=16', 'n=17',
'n=18', 'n=19'], dtype='<U4'))
(数组(['100000E-01','100000E-02','100000E-03','100000E-04',',
‘100000E-05’、‘100000E-06’、‘100000E-07’、‘100000E-08’,
‘100000E-09’、‘100000E-10’、‘100000E-11’、‘100000E-12’,
‘100000E-13’、‘100000E-14’、‘100000E-15’、‘100000E-16’,
“100000E-17,”“100000E-18,”“100000E-19,”],dtype=“我理解这个问题的方式是,你想要单独的delta\u x,abs\u error,n\u array
,以便以后绘图。你可以尝试以下几件事之一
1:随叫随到解包阵列:
delta_x,abs_error,n_array = extract_data(infile)
2:阵列切片:
result=extract_data(infile)
delta_x,abs_error,n_array = result[:,0], result[:,1], result[:,2]
这样以后就可以拆分数组了。尝试np.array(dx,float)
,强制将字符串值转换为float。它不适用于n
列表,但其他两个应该转换。result
是数组的元组,这是return
语句所期望的。