如何将两个变量之间的信息解析为一个矩阵?

2024-06-16 19:05:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难解析两个变量之间的矩阵。下面是我试图提取到numpy数组中的矩阵示例:

</MO Number>
4.224609607748e+00  4.085857782359e+00  1.273383604708e+00 -6.802974691818e-03
9.099528133406e-03  6.867550219273e-03  5.859231188647e-03  3.684441849425e-03
5.836775773317e-04 -2.316776085880e-16 -1.456850991492e-16 -2.307897076406e-17
4.140895678156e-03  2.603906355541e-03  4.125025757803e-04 -1.739011495381e-03
-1.681896173898e-03 -5.241735641835e-04 -1.739011375813e-03 -1.681896058258e-03
-5.241735281434e-04
<MO Number>

以下是我编写的代码:

def function3(start, end):
    lines = f.readlines()
    config_found = False
    var = []
    for line in lines:
        if line.strip() == end:
            config_found = False
        elif config_found:
            i = line.rstrip()
            var.append(i)
        elif line.strip() == start:
            config_found = True
    var1 = [elem.strip() for elem in var]
    var2 = var1[1:-1]
    return var2
 with open(filename, 'r') as f:
    mo1=np.array(function3(m['start1'],m['end1']))

其中start1和end1变量表示头。 但是,这将返回以下内容:

   array([ '4.224609607748e+00  4.085857782359e+00  1.273383604708e+00 -6.802974691818e-03',
   '9.099528133406e-03  6.867550219273e-03  5.859231188647e-03  3.684441849425e-03',
   '5.836775773317e-04 -2.316776085880e-16 -1.456850991492e-16 -2.307897076406e-17',
   '4.140895678156e-03  2.603906355541e-03  4.125025757803e-04 -1.739011495381e-03',
   '-1.681896173898e-03 -5.241735641835e-04 -1.739011375813e-03 -1.681896058258e-03',
   '-5.241735281434e-04'])

似乎我的代码将矩阵的每一行存储为单个元素,而实际上我希望它将每个浮点数存储为单个元素,用逗号分隔。比如说:

 [ '4.224609607748e+00', '4.085857782359e+00', '1.273383604708e+00' '-6.802974691818e-03',
   '9.099528133406e-03', '6.867550219273e-03', '5.859231188647e-03' '3.684441849425e-03',

等等。 任何帮助将非常感谢我如何修改我的代码,甚至一个完全不同的方法来解决这个问题

谢谢你


Tags: 代码configfalsenumberforvarline矩阵