Как ускорить NumpyPython

Программы на Python
Anonymous
Как ускорить Numpy

Сообщение Anonymous »


Я пытаюсь сделать следующее, используя numpy. Поскольку размер aa велик, использование numpy будет медленным. Я пытаюсь ускорить его, используя numba, есть некоторые улучшения, но мне бы хотелось ускорить его еще больше, потому что это часть другого цикла. Любой совет очень ценится!

Использование numpy:

def get_prob(aa): allmax = aa.max(axis=1)[:, Нет] findmax = аа - allmax маска = ((findmax[:,1,:]==0)&(findmax[:,2,:]==0)) findmax[:, 1, :][маска] = -1 маска = ((findmax[:, 0, :] == 0) & (findmax[:, 1, :] == 0)) findmax[:, 0, :][маска] = -1 маска = ((findmax[:, 0, :] == 0) & (findmax[:, 1, :] == 0) & (findmax[:, 2, :] == 0)) findmax[:, 0, :][маска] = -1 findmax[:, 1, :][маска] = -1 p = np.where(findmax a2 и a1>a3: p[i, 0, j] = 1. элиф a2>=a1 и a2>a3: p[i, 1, j] = 1. элиф a3>=a2 и a3>=a1: p[i, 2, j] = 1. p = p.transpose(0, 2, 1) вернуть р аа=rng.uniform(0.0, 1.0, 9000000) аа=aa.reshape(1000,3,3000) начало = время.время() get_prob_nb(аа, 1000, 3000) print("elapse", time.time()-start)

Вернуться в «Python»