Обойти проверку типа dok_matrix.get - PullRequest
1 голос
/ 14 июня 2019

16% времени выполнения моей программы тратится внутри функции isintlike() с scipy/sparse/sputils. Все звонки на isintlike() поступают от звонков на dok_matrix.get() (что составляет 20% времени работы). Я знаю, что индексы, с которыми я звоню get(), являются целочисленными, поэтому мне не нужна проверка типов.

Я пытался обойти это, используя x[coords] вместо x.get(coords), но это фактически замедлило мою программу. Я предполагаю, что это вызывает get() за кулисами с дополнительными издержками.

Я не планирую сокращать количество звонков до dok_matrix.get(), так что пока это узкое место. Есть ли способ обойти проверку типа?

1 Ответ

0 голосов
/ 14 июня 2019

Вы можете вызвать метод базового класса dict напрямую, минуя проверку типа:

dict.get(dok_matrix, coords)
...