У меня есть следующие фиктивные данные:
import numpy as numpy
x = np.linspace(1, 10, 10)
y = np.linspace(1, 10, 10)
x[::-1].sort()
y[::-1].sort()
tot_value = np.sum(y)
n_values = np.array([1, 2, 3])
final = np.sum((x[:, np.newaxis]**(1/n_values))*(y[:, np.newaxis]/tot_value))**n_values
final2 = [np.sum((x[:, np.newaxis]**(1/i))*(y[:, np.newaxis]/tot_value))**i for i in n_values]
Моя проблема в том, что я хочу использовать Numpy (final
) для эмуляции цикла, видимого в final2
, из-за скорости при получении больших массивов и прочего. Но вывод не тот, и я пробовал разные вещи, но я просто не могу понять, как это сделать, и если это вообще возможно?
Выход final
:
[275.3622303 16.59404201 16.59404201]
Где это должно быть, как в final2
:
[6.7290539608469775, 7.0, 7.0]
Может быть, я ослепну от этого, но я просто не смог понять, как это сделать.