Python 3.x 增量时间步长下numpy阵列的数值积分

Python 3.x 增量时间步长下numpy阵列的数值积分,python-3.x,numpy,scipy,Python 3.x,Numpy,Scipy,我有两个数组。第一个是年龄方面的时间(yrs),第二个是需要结合时间的参数 age=[5.00000e+08,5.60322e+08,6.27922e+08,7.03678e+08,7.88572e+08, 8.83709e+08、9.90324e+08、1.10980e+09、1.24369e+09、1.39374e+09、, 1.56188e+09、1.75032e+09、1.96148e+09、2.19813e+09、2.46332e+09、, 2.76050e+09、3.09354e+0

我有两个数组。第一个是年龄方面的时间(yrs),第二个是需要结合时间的参数

age=[5.00000e+08,5.60322e+08,6.27922e+08,7.03678e+08,7.88572e+08,
8.83709e+08、9.90324e+08、1.10980e+09、1.24369e+09、1.39374e+09、,
1.56188e+09、1.75032e+09、1.96148e+09、2.19813e+09、2.46332e+09、,
2.76050e+09、3.09354e+09、3.46676e+09、3.88501e+09、4.35371e+09、,
4.87897e+09、5.46759e+09、6.12722e+09、6.86644e+09、7.69484e+09、,
8.62318e+09、9.66352e+09、1.08294e+10、1.21359e+10、1.36000e+10]
sfr=[1.86120543e-02,1.46680445e-02,1.07275184e-02,8.56960274e-03,
6.44041855e-03、4.93194263e-03、3.69203448e-05、2.69813985e-04、,
6.17644783e-04、1.00780427e-02、1.20645391e-02、3.05009362e-02、,
3.91535011e-02、5.35479858e-02、7.36489068e-02、9.63931263e-02、,
1.11108326e-01、1.47781221e-01、1.6305763E-01、2.274296E-01、,
2.20941333e-01、2.74413180e-01、2.72010867e-01、4.32215233e-01、,
5.79654549e-01、7.39362218e-01、9.41168727e-01、1.18868347e+00、,
1.42839043e+00、1.9132633E+00]
我想针对age阵列执行sfr阵列的集成,但要分步骤进行。
例如,第一个集成应该只包含两个数组的第一个元素,第二个集成应该包含两个数组的前2个元素,第三个集成应该包含两个数组的前3个元素,依此类推。并将每个步骤的积分结果保存在单个输出数组中。

所需结果的确切形式不太清楚。因此,这里有两种可能性:

age = [5.00000e+08, 5.60322e+08, 6.27922e+08, 7.03678e+08, 7.88572e+08,
       8.83709e+08, 9.90324e+08, 1.10980e+09, 1.24369e+09, 1.39374e+09,
       1.56188e+09, 1.75032e+09, 1.96148e+09, 2.19813e+09, 2.46332e+09,
       2.76050e+09, 3.09354e+09, 3.46676e+09, 3.88501e+09, 4.35371e+09,
       4.87897e+09, 5.46759e+09, 6.12722e+09, 6.86644e+09, 7.69484e+09,
       8.62318e+09, 9.66352e+09, 1.08294e+10, 1.21359e+10, 1.36000e+10]
sfr = [1.86120543e-02, 1.46680445e-02, 1.07275184e-02, 8.56960274e-03,
       6.44041855e-03, 4.93194263e-03, 3.69203448e-05, 2.69813985e-04,
       6.17644783e-04, 1.00780427e-02, 1.20645391e-02, 3.05009362e-02,
       3.91535011e-02, 5.35479858e-02, 7.36489068e-02, 9.63931263e-02,
       1.11108326e-01, 1.47781221e-01, 1.63057763e-01, 2.27429626e-01,
       2.20941333e-01, 2.74413180e-01, 2.72010867e-01, 4.32215233e-01,
       5.79654549e-01, 7.39362218e-01, 9.41168727e-01, 1.18868347e+00,
       1.42839043e+00, 1.91326333e+00]

integr_pairs = [[(a, s) for a, s in zip(age[:i], sfr[:i])] for i in range(1, len(age))]
print(integr_pairs)
    # [[(500000000.0, 0.0186120543)], [(500000000.0, 0.0186120543), (560322000.0, 0.0146680445)], ....

integr_list = [[item for t in [(a, s) for a, s in zip(age[:i], sfr[:i])] for item in t ]for i in range(1, len(age))]
print(integr_list)
    # [[500000000.0, 0.0186120543], [500000000.0, 0.0186120543, 560322000.0, 0.0146680445],