import numpy as np, timeit as ti
a = np.random.rand(1000).astype(np.float32)
print(f'Minimum, median and maximum execution time in us:')
for fun in ('np.fabs(a)', 'np.abs(a)'):
t = 10**6 * np.array(ti.repeat(stmt=fun, setup=fun, globals=globals(), number=1, repeat=999))
print(f'{fun:20} {np.amin(t):8,.3f} {np.median(t):8,.3f} {np.amax(t):8,.3f}')
< /code>
дает эти результаты на AMD Ryzen 7 3800x: < /p>
Minimum, median and maximum execution time in us:
np.fabs(a) 1.813 1.843 4.929
np.abs(a) 0.781 0.811 1.463
Указывая, что np.fabs () более чем в 2 раза медленнее, чем np.abs () , несмотря на то, что у последних больше функциональности. В чем причина?
Этот сценарий Python 3.12.7 с Numpy 2.2.4: < /p> [code]import numpy as np, timeit as ti
a = np.random.rand(1000).astype(np.float32) print(f'Minimum, median and maximum execution time in us:')
for fun in ('np.fabs(a)', 'np.abs(a)'): t = 10**6 * np.array(ti.repeat(stmt=fun, setup=fun, globals=globals(), number=1, repeat=999)) print(f'{fun:20} {np.amin(t):8,.3f} {np.median(t):8,.3f} {np.amax(t):8,.3f}') < /code> дает эти результаты на AMD Ryzen 7 3800x: < /p> Minimum, median and maximum execution time in us: np.fabs(a) 1.813 1.843 4.929 np.abs(a) 0.781 0.811 1.463 [/code] Указывая, что np.fabs () более чем в 2 раза медленнее, чем np.abs () , несмотря на то, что у последних больше функциональности. В чем причина?
Я разрабатывал эту функцию для преобразования всех отрицательных значений из матричного вектора в положительные значения:
Версия 1 >:
template void abs_matrin(std::vector &x) {
typename std::vector::iterator i2;
for (typename std::vector::iterator...
Я разрабатывал эту функцию для преобразования всех отрицательных значений из матричного вектора в положительные значения:
Версия 1 >:
template void abs_matrin(std::vector &x) {
typename std::vector::iterator i2;
for (typename std::vector::iterator...