Как можно перебирать массивы двух разных размеров и выполнять разные операции над каждым в python - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь реализовать алгоритм Gillesp ie в python 3.7. У меня есть два массива:

popul_num = np.array([100, 200, 0, 0])

и

LHS = np.array([[1,1,0,0], [0,0,1,0], [0,0,1,0]])

. В первом массиве каждый элемент представляет собой дискретное число молекул для каждого реагента в системе, а во втором массиве каждый ряд представляет реакция, где каждый элемент ряда представляет стехиометрию c коэффициент реагента.

Мне нужно l oop через оба массива и рассчитать биномиальный коэффициент, используя количество дискретных молекул из первого массива и соответствующие стехиометрии реагентов в каждой реакции второго массива. Каждая строка массива LHS должна быть позиционно зависимой от массива popul_num.

Я не получил очень далеко

for i in LHS[0:3]:       
for j in popul_num:     
        aj = binom(j, i)        
        print(aj)

, но для этого получим:

[100. 100.   1.   1.]
[200. 200.   1.   1.]
[0. 0. 1. 1.]
[0. 0. 1. 1.]
[  1.   1. 100.   1.]
[  1.   1. 200.   1.]
[1. 1. 0. 1.]
[1. 1. 0. 1.]
[  1.   1. 100.   1.]
[  1.   1. 200.   1.]
[1. 1. 0. 1.]
[1. 1. 0. 1.]

который использует каждый элемент каждой строки в LHS со всеми элементами popul_num. Я хочу просто использовать каждый элемент каждой строки в LHS на возможно соответствующем элементе в popul_num один раз.

любые идеи

извините за длинное приветствие

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...