我正在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,以便能够求逆。
答案 0 :(得分:0)
由于每个方程都是文本格式,因此您可以将它们评估为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运算符(**
)。>