Код, который у меня ниже, прекрасно работает.
Но я хочу изменить следующее: если «переменная», которую я имею, больше 0, я хочу добавить строку, например [0,1,0,0], в существующий массив, а затем функция и параллельная обработка работают в этом обновленном массиве.
Я записал код, который уже пробовал ниже.
Я получаю сообщение об ошибке: «IndexError: индекс 2 выходит за пределы оси 0 с размером 2».
В сообщении также говорится, что это прямая причина этой строки:
master_array = np.vstack ((pool.map (third_three_part_function, array)))
import numpy as np
import multiprocessing
array = np.zeros((4, 4))
for i in range(np.size(array,1)):
array[i,0] = 10
def third_three_part_function(array):
for i in range(np.size(array) - 1):
variable = (np.random.poisson( 1, 1))
array[i+1] =array[i ]+ variable
return(array)
from multiprocessing import Pool
if __name__ == '__main__':
pool = Pool(processes=2)
master_array = np.vstack((pool.map(third_three_part_function, array)))
print(master_array)
#### What I've already tried, but doesn't work:
for i in range(np.size(array) - 1):
variable = (np.random.poisson( 1, 1))
array[i+1] =array[i ]+ variable
if variable>0:
addition = [0,1,0,0]
array = np.vstack([array,addition])
return(array)
Цель состоит в том, чтобы для каждой новой строки, которую я добавляю в массив, функция и параллельная обработка также работали с этими новыми строками, а не только с исходными строками массива.