Как изменить переменные в матрице в Python для импортированной матрицы .csv? - PullRequest
1 голос
/ 15 апреля 2019

Я импортирую файл .csv (экспортированный из maple) в python с матрицей (10 на 10) с переменными в каждом элементе. Например: a * b-c находится в (0,0). Как я могу определить a, b и c так, чтобы эти значения передавались в матрицу?

Я уже пробовал a = 1, b = 2 и т. Д., Прежде чем импортировать матрицу .csv, но это не работает.

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

Я ожидаю, что переменные будут переданы в матрицу, а матрица будет иметь тип float, чтобы иметь возможность принимать ее обратно.

1 Ответ

0 голосов
/ 15 апреля 2019

Поскольку каждое уравнение представлено в текстовом формате, вы можете оценить их как выражения 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 (**).

...