首页 > 解决方案 > 每个元素具有不同方程的二维数组

问题描述

我对 Python 和单独设计脚本/模拟比较陌生。我正在做一个涉及复杂参数的模拟。200x50 矩阵中存在四个集合,除了第一行和第一列之外,每个矩阵中的每个其他元素都使用不同的(尽管相关的)方程来计算其值。一般等式是: lambda_*((dfA[i-1,j-1]-(2*dfA[i-1,j])+dfA[i-1,j+1])+[dfA[i-1,j]]),其中 dfA 是使用 的 pandas DataFrame 的简写.iloc,例如dfA = df_c_ox_A.iloc df_c_ox_A = pd.DataFrame(data)。命名约定看起来很奇怪,但是有很多参数。

由于要编写 10000x4 方程,有没有一种更快的方法可以使用循环来完成。我知道这段代码是错误的,但这有望显示我正在寻找的内容:

for dfA[i,j] in range(200):
    if i == 0:
        dfA[i,j] = c_ox_b
    elif j == 0:
        dfA[i,j] = c_ox_0[i]
    for i >= 1 & j >= 1:
        dfA[i,j] = lambda_*((dfA[i-1,j-1]-(2*dfA[i-1,j])+dfA[i-1,j+1])+[dfA[i-1,j]])

对于额外的上下文,c_ox_b是一个单值变量,并且c_ox_0是一个值数组(200)。它是基于化学的,所以我不会对细节感到厌烦。

标签: pythonpython-3.xdataframematrix

解决方案


推荐阅读