繁体   English   中英

如何将从数组中提取的数据转换为 python 中的可用数字?

[英]How do I turn extracted data from array to useable numbers in python?

所以我得到了一个从 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]: 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'))

正如您所看到的,数组非常无用,不能真正用它们做太多事情。 例如,我如何将其转换为可用于在图表中绘制的数字? 如何选择每个数组并将其定义为函数返回的数组之一? 例如第一个数组,我如何将它定义为例如 x 而第二个定义为 y?

所以我在这里需要帮助的是如何将数组字符串转换为可用的浮点数,然后定义每个数组,以便我可以将它们用作在图形中绘制的值。 任何人对我如何做到这一点有任何想法?

我理解问题的方式是,您需要delta_x,abs_error,n_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]

这样你就可以稍后拆分数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM