У меня есть много понимания списков, которые обычно были бы немного быстрее, если бы я использовал numpy массивы вместо подсписок, но в конце я планирую скомпилировать его в cython. Разве разумнее использовать python списки вместо numpy в коде, когда я все равно планирую скомпилировать его в cython? или У массивов numpy наблюдается ускорение после компиляции с помощью cython, или у меня повышается производительность, когда я просто использую обычные списки python? Это пропорционально? (Я использую очень большие наборы данных (от полумиллиона до нескольких миллионов элементов или подсписок))
несколько примеров того, как выглядят мои представления списков:
nextInt = 1
winPoints = [[max(upSlice[:i]) for i in range(nextInt,len(upSlice)+1)] for upSlice in ppValues]```
def get_slice_max(arr, start):
result = [max(arr[:start])]
for i in range(start, len(arr)):
result.append(max(result[-1], arr[i]))
return result
winPoints = [get_slice_max(upSlice, nextInt) for upSlice in ppValues]
winningRatio =[ [1 if ratioUp >ratioDown else 0 if (ratioDown>ratioUp) else
1 if (pointsUp>pointsDown) else 0 if (pointsDown>pointsUp) else 1
for ratioUp,ratioDown,pointsUp,pointsDown in zip(ratioUpSlice,ratioDownSlice,pointsUpSlice,pointsDownSlice)]
for ratioUpSlice,ratioDownSlice,pointsUpSlice,pointsDownSlice in zip(ratios_Up,ratios_Down, pointsUpSlices,pointsDownSlices)]
EDIT: извините Я сформулировал вопрос неоднозначно / неправильно:
Имеет ли значение использование numpy перед запуском кода через Cython? И если да, то это выигрыш по эффективности больше, чем при использовании списков python и работе в cython?