如何在python中为导入的.csv矩阵更改矩阵中的变量?

如何在python中为导入的.csv矩阵更改矩阵中的变量?,python,maple,Python,Maple,我正在用python导入一个.csv文件(从maple导出),其中包含一个矩阵(10 x 10),每个元素中都有变量。例如:a*b-c在(0,0)中。如何定义a、b和c,以便将这些值传递给矩阵 在导入.csv矩阵之前,我已经尝试了a=1、b=2等,但这不起作用 import numpy as np my_matrix = np.genfromtxt('MyMatrix.csv', dtype='unicode', delimiter=',') 我希望将变量传递给矩阵,并且矩阵的类型为float

我正在用python导入一个.csv文件(从maple导出),其中包含一个矩阵(10 x 10),每个元素中都有变量。例如:a*b-c在(0,0)中。如何定义a、b和c,以便将这些值传递给矩阵

在导入.csv矩阵之前,我已经尝试了a=1、b=2等,但这不起作用

import numpy as np
my_matrix = np.genfromtxt('MyMatrix.csv', dtype='unicode', delimiter=',')

我希望将变量传递给矩阵,并且矩阵的类型为float,以便能够取它的倒数。

因为每个方程都是文本格式的,所以可以将它们作为Python表达式进行计算:

import numpy as np
my_matrix = np.genfromtxt('MyMatrix.csv', dtype='unicode', delimiter=',')

a = 1
b = 2
c = 3
my_matrix_eval = np.vectorize(lambda x: np.float64(eval(x)))(my_matrix)

注意:这将解决问题中提出的问题。但是,由于您在注释中提供的示例包含的运算符(
^
)不是有效的Python表达式,因此必须将这些字符转换为相应的Python运算符(
**
)。

由于每个等式都是文本格式,因此可以将它们作为Python表达式进行计算:

import numpy as np
my_matrix = np.genfromtxt('MyMatrix.csv', dtype='unicode', delimiter=',')

a = 1
b = 2
c = 3
my_matrix_eval = np.vectorize(lambda x: np.float64(eval(x)))(my_matrix)

注意:这将解决问题中提出的问题。但是,由于您在注释中提供的示例包含一个不是有效Python表达式的运算符(
^
),因此必须将这些字符转换为相应的Python运算符(
**
)。

如果csv文件内容不太大,您能否提供csv文件内容?这是否有帮助:1/4*(-mH-mHB)、1/4*((p3xi+p4xi))、1/4*(p3xi+p4xi+p4xi)、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0 0,0,0,0,1/4 1/4 1/4 1/4 1/4*((-MHMHMH-mHB)、1/4*(mHB)、1/4*(mHB)、1/4*(mH+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHB+mHS)1/4)1/4)1/4)1/4,1/4,1/4,1/1/1/4,0,1/1/1/1/1/1/4 3,0,0,0,0,0,0,1/4,1/4*1/4*1/4 3 3 3 3(mH+mHB+mHS)*p3xi^3,0,0,0,0,0,1/4*(mH+mHB+mHS)*p3xi^4,1/4*(mH+mHB+mHS)*p3xi^4,1/4*(mH+mHB+mHS)*p3xi^4,0,0,0,0,0,01/4*(-mH-mHB),1/4*(mH+mHB+mHS)*p3xi^5,0,0,1/4*(mH+mHB+mHS)*p3xi^5,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1是的,这很有帮助。示例中缺少一些括号,需要修复以进行评估。我在下面给出了一个解决方案。如果csv文件内容太大,是否有帮助?(-mHB*)1/4,0,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1/4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1/4 3 3 3 3 3 3 3 3 1/4 3 3 3 3 3 3 3 3 3 1 1/4 3 3 3 3 3(1/4 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10(1/0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 p3xi^3,1/4*(mH+mHB+mHS)*p3xi^3,0,0,0,0,1/4*(mH+mHB+mHS)*p3xi^4,1/4*(mH+mHB+mHS)*p3xi^4,1/4*(mH+mHB+mHS)*p3xi^4,0,0,0,0,01/4*(-mH-mHB),1/4*(mH+mHB+mHS)*p3xi^5,0,0,1/4*(mH+mHB+mHS)*p3xi^5,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1是的,这很有帮助。您的示例中有一些缺少的括号,需要修复以进行评估。我在下面给出了一个解决方案。非常感谢!我为新的问题解决了:运算符_=np_f.replace(我的_矩阵,'^','**')非常感谢!问题已解决。对于运算符问题,我做了以下操作:new_data=np_f.replace(我的_矩阵,'^','**'))