如何为导入的 .csv 矩阵更改 python 矩阵中的变量?
How to change variables in a matrix in python for an imported .csv matrix?
我正在 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 中导入一个 .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 运算符(**
).