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