Есть массив 10000 на 5, в каждой строке первые четыре элемента - коэффициенты для функции, а пятый - 0. Можно ли, и если да, то как, что бы в каждой строке пятый элемент был заполнен результатом использования соответствующих ему элементов (первые четыре, в этой же строке) для функции без использования for (с ним я сделал, пример ниже). Ниже примеры моих попыток и вспомогательный код.
Создание массива (Массив содержит нулевые 5 элементы):
import numpy as np
list = []
for a in range(0, 10):
for b in range(0, 10):
for c in range(0, 10):
for d in range(0, 10):
list.append([a, b, c, d])
array = np.zeros((10000, 5))
for i in range(0, 10000):
for a in range(0, 4):
array[i, a] = list[i][a] * 0.001
Пример функции (значение ad будет 5 элементом):
def task(coef):
ad = float(coef[0] + coef[1] * coef[2] - coef[3])
if coef[0] != 0:
ad = ad/coef[0]
else:
ad = ad/100
return ad
То, как я это реализовал:
for i in range(0, 10000):
array[i, 4] = task(array[i, 0:4])