我正在尝试在python 3.7中实现Gillespie算法。我有两个数组:
popul_num = np.array([100, 200, 0, 0])
和
LHS = np.array([[1,1,0,0], [0,0,1,0], [0,0,1,0]])
在第一阵列中,每个元素代表系统中每种反应物的离散分子数目,在第二阵列中,每行代表反应,其中该行的每个元素代表反应物的化学计量系数。
我需要遍历两个数组,并使用来自第一个数组的离散分子数和第二个数组的每个反应中相应的反应物化学计量来计算二项式系数。 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的所有元素一起使用。我只想在popul_num中可能对应的元素上使用LHS中每行的每个元素。
任何想法
很抱歉,欢呼声
这将“合并”两个数组https://docs.python.org/3.3/library/functions.html#zip
for j,i in zip(popul_num, LHS):
aj = binom(j, i)