Преобразуйте символы c в массив в python - PullRequest
2 голосов
/ 14 апреля 2020

Я пытаюсь преобразовать выражение символов c в массив в python.

Например, у меня есть это выражение символов c:

import sympy as sp
import numpy as np
A,B = sp.symbols("A B")
G = 3*A**2*B - 2*A*B + A**2

Я хочу преобразовать это в массив, выглядящий следующим образом:

[3*A**2*B,-2*A*B,A**2]

Я знаю, как это сделать в Matlab, но мне нужно сделать это и в Python.

То, что я пробовал:
Я преобразовал выражение Symboli c в полином, что позволило мне собрать коэффициенты.

C = G.as_poly().coeffs()

Это привело меня на полпути:

C = [3,-2,1]

Но я хочу иметь хотя бы аналогичный список для всех переменных.

У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 14 апреля 2020

Вы можете использовать as_ordered_terms, чтобы получить упорядоченный список всех терминов:

G.as_ordered_terms()

дает

[3*A**2*B, A**2, -2*A*B]

В качестве альтернативы вы можно использовать args для получения всех аргументов верхнего уровня объекта.

G.args

Это даст кортеж:

(A**2, -2*A*B, 3*A**2*B)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...