如何遍历两个不同大小的数组并在python中对每个数组执行不同的操作

问题描述 投票:0回答:1

我正在尝试在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中每行的每个元素。

任何想法

很抱歉,欢呼声

python arrays numpy scipy biopython
1个回答
0
投票

这将“合并”两个数组https://docs.python.org/3.3/library/functions.html#zip

for j,i in zip(popul_num, LHS):
    aj = binom(j, i)  
© www.soinside.com 2019 - 2024. All rights reserved.