Задать вопрос
@LanskoyGames
У модераторов первое место, но только с конца...

Что эффективнее: np.array_equal или (A == B).all()?

Что работает эффективнее для массивов?

np.array_equal или (A == B).all()
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Модуль timeit в руки и вперёд, измеряй

>>> timeit.timeit(stmt='(A == B).all()', setup='import numpy; A, B = numpy.zeros((1000,)), numpy.zeros((1000,))', number=10_000_000)
20.43348090001382
>>> timeit.timeit(stmt='numpy.array_equal(A, B)', setup='import numpy; A, B = numpy.zeros((1000,)), numpy.zeros((1000,))', number=10_000_000)
27.85776079981588
>>>


Правда, есть у меня уверенность, что A == B создаёт временный массив, так что это менее эффективно по памяти. А вот делает ли так array_equal() - не знаю.

EDIT: открыл исходники функции...
return builtins.bool((a1 == a2).all())
Ну ты понел.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы