TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #32 · 7 фев.

Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять: from timeit import timeit def t1(): # складываем 10 строк через + из переменной t = 'text' for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t2(): # склеиваем список строк через метод join arr = ['text'] * 10 for _ in range(1000): s = ''.join(arr) def t3(): # складываем через + но не из переменной а непосредственно инлайн объекты for _ in range(1000): s = 'text' + 'text' + 'text' + ... # всего 10 раз Теперь каждую строку склейки запустим по 10М раз >>> timeit(t1, number=10000) 0.21951690399964718 >>> timeit(t2, number=10000) 1.4978306379998685 >>> timeit(t3, number=10000) 0.2213820789993406 Хм, а нам говорили что через "+" это плохо и медленно ))) 😁 Тут стоит учитывать, что речь идёт о склейке множества длинных строк. Давайте изменим условия: def t4(): t = 'text'*100 for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t5(): arr = ['text'*100] * 10 for _ in range(1000): s = ''.join(arr) def t6(): for _ in range(1000): s = 'text'*100 + 'text'*100 + ... # всего 10 раз >>> timeit(t4, number=10000) 12.795130728000004 >>> timeit(t5, number=10000) 2.642637542999182 >>> timeit(t6, number=10000) 0.2184546610005782 Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее! Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё. В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический. В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно. Полный листинг 🌍 #tricks

Резултати

Пронајдени 2 слични објави

Пребарај: #urbandata

当前筛选 #urbandata清除筛选
О городах и данных

@datainthecity · Post #3 · 04.09.2020 г., 19:38

Начну с одного из своих любимых примеров использования городских данных из столицы Шотландии, Эдинбурга. Каждый август там проходит международный фестиваль Edinburgh Festival Fringe, на который приезжают тысячи туристов и, конечно, стандартное расписание транспорта этого относительно небольшого города не справляется с такой нагрузкой. Чтобы подстроить работу автобусов и поездов ( многие туристы ночуют вне Эдинбурга) под спрос, городские власти совместно с департаментом транспорта и университетом Эдинбурга, собирают статистику с учреждений-участников фестиваля о времени проведения их мероприятий и количестве зарегистрировавшихся, и, исходя из этого, определяют в какие часы, какое количество дополнительных рейсов и куда должно быть направлено. Говорят, что регулируют даже светофоры. Система пока не настроена, чтобы работать реал-тайм, поэтому решения принимаются заранее на основе ожидаемых цифр и исторических данных. В целом, это понятный и эффективный пример того, как данные помогают избежать перегруженности транспорта во время массовых мероприятий. Может и нашим властям попробовать вместо того, чтобы закрывать метро, подстраивать работу транспорта под спрос? #urbandata#urbanalytics#scotland#smartcity

О городах и данных

@datainthecity · Post #19 · 08.09.2020 г., 07:32

Качество инфраструктуры-важный, но не единственный параметр при принятии решения о переезде в новый район. Другой вопрос, которые возникает в головах у многих : "а кто мои будущие соседи?". "С кем будет учиться ребенок в школе, безопасно ли вечером на площадке у дома, будут ли у меня партнеры по бегу?" . Здесь я вас разочарую : в России на эти вопросы вам ответят только бабушки на лавочке у подъезда. А вот в Европе, и в частности Британии, такую бабушку заменяет .. перепись населения! Да, та самая, которая проводится раз в 10 лет и во время которой незнакомые люди с бумажными анкетами, спрашивают вас, сколько человек у вас в семье и кто вы по-национальности Дело в том, что в Британии результаты переписи населения предназначены для аудитории значительно шире российской,а потому и данных собирается в разу больше. Сравните. В России: " цель.. - формирование федеральных информационных ресурсов". В Британии: "перепись.. дает лицам, принимающим решения в национальных и местных органах власти, общественных группах, благотворительных организациях и предприятиях, возможность лучше обслуживать сообщества и отдельных лиц. в Соединенном Королевстве". В России есть 10 показателей в разрезе регионов, в Британии 104 в 13 географических разрезах от страны до почтового индекса ( 15-20 квартир). Как результат, в России максимум, что я могу узнать, что в Тюменской области в городах живут 343тыс рабочего населения возрастом от 20-30 лет; в Британии, что в Ливерпуле в районе центрального железнодорожного вокзала живет 3700 человек от 20 до 35 лет, из которых 114 - владельцы собственного бизнеса на фул-тайм и 18 из них еще параллельно учатся. Заметили разницу? Кроме того в Британии помимо основной анкеты про пол/возраст/национальность есть еще расширенная, по которой опрашивают выборочно, но так чтобы составить полное представление о каждом районе. Вопросы такие: сколько часов в день у них уходит на дорогу на работу, как часто члены семьи ездят на машине/велосипеде/автобусе, как давно переехали в эту квартиру, какой процент дохода тратите на коммунальные услуги и т.д. Все эти данные крайне важны для политиков,городских планировщиков, социальных служб, исследователей и да, для тех, кто выбирает новый район для жизни, ведь с точностью до 20 квартир можно многое узнать про соседей. Британский сайт переписи : https://www.nomisweb.co.uk/census/2011/data_finder Российский сайт переписи: https://vpngis.gks.ru:8443/ #census#opendata#urbandata#datainthecity#перепись2021