Ускорение работы за счет векторизации ⇐ Python

Программы на Python
Anonymous
Ускорение работы за счет векторизации

Сообщение Anonymous »

Я хочу оптимизировать этот цикл, но у меня нет идей/навыков.
Я пытался переписать его с помощью numba, jax, но безуспешно.
Чтобы реализовать условия без перевычисления вещи (небольшой выигрыш), но это все равно около 30 секунд при запуске.
Я думаю, что векторизация - это способ, но я не могу найти способ правильно ее реализовать. Кто-нибудь может показать мне, как векторизовать это, зная, что выбранные входные данные будут иметь разную длину?
#float, float, float, int
x, y, z, idx = df['x'].values, df['y'].values, df[z_col].values, df.index.values
azi_rad = np.radians(azi)
cos_azi_rad, sin_azi_rad, tan_ang_tol_rad, ang_tol_rad = np.cos(azi_rad), np.sin(azi_rad), np.radians(ang_tol), np.tan(ang_tol_rad)
band_width, max_distance = 100, 1000

#will receive results by indentation later
res_select=np.empty_like(idx)

for id in idx :
#origin point x,y,z
xi, yi, zi = x[id], y[id], z[id]

#cutting to smaller chunk
cond_xy_cut = ((xi-max_distance)

Подробнее здесь: https://stackoverflow.com/questions/790 ... ectorizing

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