Python подсчет элементов в итерируемых с фильтром

Чтобы поднять то, что было упомянуто в комментарии, я делал все, что упоминалось в этой теме, и вычеркиваю ... потому что моя была в петле, которую можно было запустить снова и снова; после первого раза через цикл, это иногда терпит неудачу. Всегда работал в первый раз через цикл.

Чтобы быть ясным: цикл включает в себя создание SmtpClient, а затем делает .Отправить с нужными данными. SmtpClient был создан внутри блока try / catch, чтобы поймать ошибки и убедиться, что объект был разрушен до нижней части цикла.

В моем случае решение заключалось в том, чтобы убедиться, что SmtpClient удален после каждого раза в цикле (либо с помощью инструкции (), либо путем ручного управления). Даже если объект SmtpClient неявно уничтожается в цикле, .NET, похоже, оставляет материал, находящийся вокруг конфликта со следующей попыткой.

0
задан lhk 21 February 2019 в 09:36
поделиться

1 ответ

Если речь идет о больших массивах numpy, лучше воспользоваться векторизованными операциями numpy.

%%time
np.unique(numbers[numbers <= 10], return_counts=True)

Вывод:

Wall time: 31.2 ms

(array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10]),
 array([10055, 10090,  9941, 10002,  9994,  9989, 10070,  9859, 10038,
        10028,  9965], dtype=int64))

Для сравнения, мои собственные временные характеристики вашего кода немного превышали ваши.

0
ответ дан Goyo 21 February 2019 в 09:36
поделиться
Другие вопросы по тегам:

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