2D массив с различным уравнением для каждого элемента - PullRequest
2 голосов
/ 27 апреля 2020

Я относительно новичок в 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 ). Он основан на химии, поэтому я не буду утомляться деталями.

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