Архив метки: Python

R Vs Python — самая актуальная дискуссия для начинающих ученых данных

Теперь пришло время битвы двух самых требовательных языков программирования — R против Python. Мы углубимся в понимание различий между двумя языками. И, мы вас уверяем, у вас не останется никакой путаницы после завершения этой статьи, то есть R vs Python — самой популярной дискуссии начинающих ученых-данных.

 

R против Python

Чтобы изучить все о R против Python, сначала вы должны знать, что такое R и Python. Ниже приводится краткое введение в оба языка.

 

Что такое R?

R — это язык программирования, предназначенный специально для статистических и графических вычислений. Проект R — это расширение языка S, разработанное в Bell Laboratories Джоном Чемберсом и его коллегами. Это язык и среда для статистических вычислений и графики.

Аналитики данных, ученые данных, статистики используют язык программирования R для анализа данных и статистического анализа с помощью графиков и других типов визуализаций. R позволяет пользователям выполнять анализ больших наборов данных. Этот язык постоянно растет с тысячами пакетов, которые могут быть легко использованы для многих приложений.

Существуют различные статистические и графические методы, которые предоставляет R, такие как линейное и нелинейное моделирование, статистическое тестирование, анализ временных рядов, классификация, регрессия, кластеризация и многие другие.

Основным преимуществом R является его широко разрекламированные графики качества, которые мы можем изготовить, используя множество функций и пакетов. Пользователь также сохраняет полный контроль над выбором дизайна в своей графике.

 

Окружающая среда R

R представляет собой комплексный набор различных средств и функций, которые мы можем использовать для манипулирования данными, расчетов, а также для графического отображения. Эти объекты включают в себя:

  • Это обеспечивает эффективную обработку данных, а также хранилище.
  • Он предоставляет набор операторов, которые мы можем использовать для выполнения вычислений над массивами и, в частности, многомерными матрицами.
  • Обилие графических средств и функций, предназначенных для анализа данных, обеспечивает различный экспорт отображения в различных форматах.
  • Он предоставляет большой, согласованный и интегрированный набор из нескольких инструментов, которые мы можем использовать для анализа данных.
  • Это хорошо разработанный, простой и эффективный язык программирования, включающий циклы, условия, рекурсивные функции, а также несколько функций ввода-вывода.

 

Что такое Python?

Python — это основанный на интерпретаторе высокоуровневый и объектно-ориентированный язык программирования, состоящий из динамической семантики. Python — это встроенные высокоуровневые структуры данных, которые мы можем комбинировать с динамической типизацией и динамическим связыванием, чтобы сделать его очень привлекательным для быстрой разработки приложений. Мы также можем использовать его для написания скриптов или связующего языка для объединения нескольких компонентов в одну структуру.

Python прост, легок в освоении, а также делает акцент на удобочитаемости, что значительно снижает общую стоимость обслуживания программы. Python имеет простую кривую обучения и поддерживает модульность программы, а также возможность многократного использования кода. Интерпретатор Python, а также обширная стандартная библиотека представлены в двоичном виде, который не взимается за основные платформы и обеспечивает бесплатное распространение.

Программисты, которые плохо знакомы с программированием, часто влюбляются в Python из-за его обширной функциональности и простоты обучения. Поскольку в Python нет этапа компиляции, предоставление цикла edit-test-debug значительно ускоряется. В Python процесс отладки программ невероятно прост. В отличие от других языков, таких как C и C ++, неправильный ввод никогда не приведет к ошибке сегментации. Когда интерпретатор обнаруживает ошибку, он вызывает исключение для пользователя сразу после ввода ввода. Однако, если программа перехватывает исключение, интерпретатор предоставляет трассировку стека. Все эти функции, добавленные в массивные библиотеки для различных целей, делают Python эффективным языком программирования. Используя отладчик на уровне исходного кода, можно легко проверять как локальные, так и глобальные переменные.

 

Разница между R и Python

Ниже мы обсудим R против Python на основе определения, обязанностей, карьерных возможностей, преимуществ и недостатков:

 

R против Python — Определение

R

  • В частности, он был направлен на рассмотрение статистических методов.
  • R имеет несколько графических библиотек, таких как ggplot2 и plotly, которые делают его очень популярным благодаря качественным отчетам и изображениям, которые мы можем генерировать.
  • Мы можем использовать R для нескольких статистических функций, таких как регрессия, кластеризация, классификация, статистическое тестирование и т. д. Следовательно, R имеет множество поддерживаемых операций для машинного обучения и статистических задач.
  • В то время как R страдает от крутой кривой обучения, он оказывается идеальным языком для выражения статистических методологий, позволяя ученым по обработке данных в соответствии с их требованиями.
  • R — это язык программирования с открытым исходным кодом, означающий, что пользователи могут активно участвовать в развитии растущего языка, а также пользоваться многими преимуществами без какой-либо лицензии.
  • Будучи основанным на интерпретаторе языком, R может немедленно запустить скрипт и предоставить вывод пользователю. Это позволяет легко отладить код.

 

Python

  • Это многоцелевой язык программирования, который мы можем использовать для самых разных задач.
  • В Python есть библиотека для каждой задачи. Начиная с разработки веб-приложений и заканчивая тестированием на проникновение и изучением данных, Python предлагает решение для всего.
  • Он предоставляет достаточное количество библиотек, которые мы можем использовать для различных операций машинного обучения, а также передовых методологий глубокого обучения.
  • Python обеспечивает плавную кривую обучения, что делает его очень популярным среди новичков, а также опытных программистов, которые хотят перейти к разработке, используя Python в качестве основного языка. Благодаря обширным библиотекам поддержки, он становится выбором для многих операций, так как пользователи Python считают, что язык является единственным решением многих проблем.
  • Python также является языком программирования с открытым исходным кодом, в котором есть много проектов с открытым исходным кодом, в которые пользователи могут активно участвовать.
  • Мы можем проанализировать скрипты Python, а также сразу запустить их. Кроме того, мы можем сохранить Python как скомпилированные программы, на которые могут ссылаться другие программы.

 

R Vs Python — Обязанности

Обязанности разработчика на R следующие:

  • R профессионал несет ответственность за обеспечение моделирования, проводить анализ данных, визуализацию с использованием различных пакетов R.
  • Разработчик R оказывает помощь в проектировании и разработке базовой архитектуры, которая будет использоваться в статистической модели.
  • Разработчик также координирует работу с конечным пользователем для проектирования и разработки решения аналитических задач, связанных с проектными предложениями.
  • Другая ключевая обязанность — обеспечить доступ к данным, манипулировать информацией и сообщать о функциях.
  • Создание ключевых процедур для интеграции R-программирования с источниками данных и системами доставки, которые экспортируют файл данных в несколько форматов.
  • Разработчик R отвечает за оказание помощи разработчикам в выполнении их планов с учетом требований клиента.
  • Программисты R должны создать код, который состоит из качественной переменной, а также задач манипуляции с несколькими статистическими процедурами.

 

Обязанности программиста на Python следующие:

  • Разработчик Python должен иметь возможность реализовывать серверную логику для выполнения серверных вычислений.
  • Разработка программного обеспечения для управления активами является еще одной ключевой обязанностью программиста Python.
  • Чтобы интегрировать различные программные системы, разработчик Python должен иметь возможность разрабатывать масштабируемый клейкий код.
  • Написание многоразового и тестируемого кода для лучшего качества работы — одна из основных функций разработчика Python.
  • Защита данных и защита программного обеспечения также является одним из требований программного решения. Таким образом, разработчик Python должен быть в состоянии решить эту проблему.
  • Программист Python должен уметь реализовывать программирование на основе событий.
  • Другая важная рабочая задача — провести эффективное модульное тестирование и отладку.

 

R Vs Python — карьерные возможности

Некоторые отрасли, которые нанимают разработчиков R:

  • Академии
  • Финансы
  • Банковское дело
  • Здравоохранение
  • Производство
  • Электронная коммерция

Некоторые компании, нанимающие разработчиков R — это IBM, Airbnb, Uber, Twitter, а также несколько государственных статистических институтов.

Некоторые отрасли, которые нанимают разработчиков Python:

  • Разработка программного обеспечения
  • Производство
  • Робототехника
  • Встроенные системы
  • Автоматизация и тестирование
  • Этический взлом

Некоторые из компаний, нанимающих разработчиков Python — это Google, Amazon, Dropbox, Quora, Reddit, Pinterest и многие другие.

 

R Vs Python — Преимущества и недостатки

Преимущества R

  • Основным преимуществом R является его природа с открытым исходным кодом. Поэтому вы можете работать с R без какой-либо лицензии или оплаты сборов. Будучи открытым исходным кодом, вы также можете внести свой вклад в настройку пакетов R, более новую разработку, а также в решение проблем.
  • R обеспечивает образцовую поддержку для обработки данных. Пакеты, такие как dplyr, readr, способны преобразовывать грязные данные в структурированную форму.
  • Имея более 10 000 пакетов в своем репозитории CRAN, R поддерживает библиотеки, которые разнообразны, и каждое поле, которое использует данные, может использовать их.
  • R имеет некоторые существенные особенности для построения графиков и эстетического улучшения графиков. Существуют популярные библиотеки, такие как ggplot2 и plotly, которые предлагают пользователям широкий спектр возможностей настройки графиков.
  • Это независимый от платформы язык, который может выполнять программы в Windows, Linux и Mac.
  • R — это особый язык, который используется для статистического моделирования. Это основной инструмент для создания статистических инструментов для науки о данных. Это дает R существенное преимущество перед другими языками программирования, такими как Python.
  • R постоянно развивается. Он предоставляет различные современные функции, которые продолжают обновлять его всякий раз, когда выпускается новый алгоритм.
  • У этого есть активное и привлекательное сообщество. В R существуют различные онлайн-форумы, которые предоставляют помощь и поддержку программистам R. Кроме того, существуют различные буткемпы и онлайн-семинары, которые предоставляют активное обучение начинающим программистам.

 

Недостатки R

  • Язык программирования R имеет свои корни в гораздо более древнем языке программирования, называемом S. Из-за этого в R отсутствуют большинство функций современного языка программирования, таких как поддержка динамической или трехмерной графики.
  • R требует, чтобы его объекты были сохранены в физической памяти. По сравнению с другими статистическими инструментами R требует больше памяти для своих программ. Поскольку R требует, чтобы все данные были загружены в его память, это не очень хороший вариант при работе с большими данными .
  • Поскольку R вытекает из гораздо более старой технологии, базовые возможности, такие как безопасность, не были родными для R. Это ограничивает R, поскольку веб-приложения не могут его встроить или использовать в качестве языка внутренних вычислений, такого как Java, Python или Node.js.
  • R представляет собой крутой кривой обучения. Людям, имеющим опыт работы в области статистики, было бы идеально использовать R. Поэтому для людей, начинающих заново в науке о данных, R может оказаться сложным языком для адаптации.
  • Пакеты в R, как правило, медленнее, чем другие конкурирующие языки, такие как Python и MATLAB.
  • Большинство алгоритмов R реализованы в разных пакетах. Такая децентрализация пакетов затрудняет применение алгоритмов к задачам без предварительного знания требуемого пакета.

 

Преимущества Python

  • Как и R, Python с открытым исходным кодом. Вы можете использовать Python бесплатно. Кроме того, вы можете изменить, настроить и внести свой вклад в библиотеки Python.
  • Python — это язык программирования общего назначения, который облегчает его использование в различных задачах. Области разработки программного обеспечения, робототехники, встроенных систем, автоматизации и т. д. Интенсивно используют Python.
  • Python включает в себя современные API-интерфейсы, такие как TensorFlow, pytorch, keras, numpy, которые чрезвычайно полезны при создании искусственных нейронных сетей .
  • Это удобный язык программирования. Это одна из основных причин того, почему Python является стандартным языком программирования в университетах.
  • Python безопасен. Серверные вычисления включают в себя Python, поскольку он предоставляет различные платформы для разработки веб-приложений.
  • Python способен обрабатывать большие наборы данных. Он может загружать файлы данных намного быстрее, а также может работать с экосистемами больших данных.

 

Недостатки Python

  • Будучи основанным на интерпретаторе языком, Python медленнее, чем другие языки, такие как C, C ++ и Java.
  • Python отстает от R, когда дело доходит до статистического анализа. Хотя Python, возможно, значительно улучшился, но ему все еще не хватает определенных статистических пакетов по сравнению с R.
  • Динамически типизированная природа Python делает его уязвимым для ошибок во время выполнения.
  • Python, по сравнению с JDBC, имеет недостаточно развитый уровень доступа к базе данных.
  • Задачи, которые требуют большой памяти, страдают от Python. Гибкие типы данных в Python способствуют его высокому потреблению памяти.

 

Резюме

Здесь приходит заключение R против Python. Мы обсудили все основные моменты для понимания различия между R и Python. Надеюсь, теперь вы можете выбрать лучший способ стать специалистом по данным.



2020-01-11T21:49:30
Python

Многопроцессорный модуль Python с примерами

1. Многопроцессорная обработка Python — цель

Сегодня в этой статье по Python мы увидим многопроцессорную работу с Python. Кроме того, мы рассмотрим пакет и структуру многопроцессорной обработки в Python. Кроме того, мы обсудим класс процесса в Python Multiprocessing, а также получим информацию о процессе. Чтобы это произошло, мы заимствуем несколько методов из модуля многопоточности. Наряду с этим мы изучим блокировку и пул класса Python Multiprocessing.

Итак, давайте начнем.

 

2. Что такое многопроцессорная обработка Python?

Сначала поговорим о параллельной обработке. Это способ одновременно разбивать и запускать программные задачи на нескольких микропроцессорах. По сути, это попытка сократить время обработки и это то, чего мы можем достичь с помощью компьютера с двумя или более процессорами или с использованием компьютерной сети. Мы также называем это параллельными вычислениями.

Итак, теперь перейдем к Python Multiprocessing, это способ повысить производительность путем создания параллельного кода. Производители процессоров делают это возможным, добавляя больше ядер к своим процессорам. В многопроцессорной системе приложения разбиваются на более мелкие подпрограммы для самостоятельной работы. Взгляните на однопроцессорную систему. Учитывая несколько процессов одновременно, он пытается прерывать и переключаться между задачами. Как бы вы себя чувствовали, будучи единственным шеф-поваром на кухне с сотнями клиентов? Вы должны были бы выполнять все обычные задачи от выпечки до замеса теста.

 

а. Пакет многопроцессорной обработки Python

Многопроцессорная обработка в Python  — это пакет, который мы можем использовать с Python для порождения процессов с использованием API, который очень похож на модуль потоков . Благодаря поддержке как локального, так и удаленного параллелизма, он позволяет программисту эффективно использовать несколько процессоров на данном компьютере. Прежде чем мы сможем объяснить вам это, давайте рассмотрим пример пула — объекта, способа распараллеливания выполнения функции по входным значениям и распределения входных данных по процессам. Это параллелизм данных (создайте из этого модуль и запустите его):

from multiprocessing import Pool

def f(x):

return x*x

with Pool(5) as p:

print(p.map(f,[1,2,3]))

 

Хотите узнать, сколько ядер у вашей машины? Попробуйте метод cpu_count().

>> import multiprocessing

>>> multiprocessing.cpu_count()

 

б. Структура многопроцессорной системы Python

Так из чего состоит такая система? У нас есть следующие возможности:

  • Мультипроцессор — компьютер с несколькими центральными процессорами.
  • Многоядерный процессор — один вычислительный компонент с более чем одной независимой фактической единицей обработки/ядрами.

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

 

3. Класс многопроцессорного процесса Python

Давайте сначала поговорим о классе Process в Python Multiprocessing. Это абстракция для настройки другого процесса, позволяющая родительскому приложению контролировать выполнение. Здесь мы наблюдаем методы start() и join(). Давайте сначала возьмем пример.

import multiprocessing

from multiprocessing import Process

def testing():

print("Объектов")

def square(n):

print("Число квадратов в ",n**2)

def cube(n):

print("Количество кубиков в ",n**3)

if __name__=="__main__":

p1=Process(target=square,args=(7,))

p2=Process(target=cube,args=(7,))

p3=Process(target=testing)

p1.start()

p2.start()

p3.start()

p1.join()

p2.join()

p3.join()

print("Мы закончили")

 

Мы сохранили на нашем рабочем столе, а затем дважды запустили из командной строки.

Давайте разберемся с этим фрагментом кода. Process() позволяет нам создать экземпляр класса Process. start() говорит Python начать обработку. Но тогда, если мы позволим этому быть, это потребляет ресурсы, и мы можем исчерпать их в более поздний момент времени. Это потому, что он позволяет процессу оставаться бездействующим и не завершаться. Чтобы избежать этого, мы вызываем метод join(). При этом нам не нужно убивать их вручную. Присоединение останавливает выполнение текущей программы до завершения процесса. Это гарантирует, что программа ожидает завершения p1 и затем завершения p2. Затем он выполняет следующие операторы программы. И последнее: аргумент ключевого слова args позволяет нам указать значения передаваемого аргумента. Кроме того, цель позволяет нам выбрать функцию для выполнения процесса.

 

4. Получение информации о процессах

 

а. Получение идентификатора процесса и проверка работоспособности

Мы можем захотеть получить ID процесса или одного из его дочерних элементов. Мы также можем захотеть узнать, жив ли он еще. Следующая программа демонстрирует эту функциональность:

import multiprocessing

from multiprocessing import Process

import os

def child1():

print("Child 1",os.getpid())

def child2():

print("Child 2",os.getpid())

if __name__=="__main__":

print("Parent ID",os.getpid())

p1=Process(target=child1)

p2=Process(target=child2)

p1.start()

p2.start()

p1.join()

alive='Yes' if p1.is_alive() else 'No'

print("Is p1 alive?",alive)

alive='Yes' if p2.is_alive() else 'No'

print("Is p2 alive?",alive)

p2.join()

print("Мы закончили")

 

В многопроцессорной среде Python каждый процесс занимает свое собственное пространство памяти для запуска независимо. Завершается, когда целевая функция завершается выполнением.

 

б. Получение названия процесса

Мы также можем установить имена для процессов, чтобы мы могли получить их, когда захотим. Это сделано для того, чтобы сделать его более читабельным.

import multiprocessing

from multiprocessing import Process, current_process

import os

def child1():

print(current_process().name)

def child2():

print(current_process().name)

if __name__=="__main__":

print("Parent ID",os.getpid())

p1=Process(target=child1,name='Child 1')

p2=Process(target=child2,name='Child 2')

p1.start()

p2.start()

p1.join()

p2.join()

print("Мы закончили")

 

Как видите, метод current_process() дает нам имя процесса, который вызывает нашу функцию. Посмотрите, что происходит, когда мы не присваиваем имя одному из процессов:

import multiprocessing

from multiprocessing import Process, current_process

import os

def child1():

print(current_process().name)

def child2():

print(current_process().name)

if __name__=="__main__":

print("Parent ID",os.getpid())

p1=Process(target=child1)

p2=Process(target=child2,name='Child 2')

p1.start()

p2.start()

p1.join()

p2.join()

print("Мы закончили")

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

 

5. Многопроцессорная блокировка Python

Как и многопоточный модуль, многопроцессорная обработка в Python поддерживает блокировки. Процесс включает в себя импорт Lock, его использование, выполнение чего-либо, а затем освобождение. Давайте взглянем.

В следующем фрагменте кода мы заставляем процесс получить блокировку, пока он выполняет свою работу.

from multiprocessing import Process, Lock

lock=Lock()

def printer(item):

lock.acquire()

try:

print(item)

finally:

lock.release()

if __name__=="__main__":

items=['nacho','salsa',7]

for item in items:

p=Process(target=printer,args=(item,))

p.start()

 

Давайте запустим этот код трижды, чтобы увидеть, какие разные результаты мы получаем.

Блокировка не позволяет потокам мешать друг другу. Следующий процесс ожидает снятия блокировки, прежде чем продолжить.

 

6. Класс многопроцессорного пула Python

Этот класс представляет пул рабочих процессов; его методы позволяют переложить задачи на такие процессы. Давайте рассмотрим пример (Создайте модуль и запустите его).

from multiprocessing import Pool

def double(n):

return n*2

if __name__=='__main__':

nums=[2,3,6]

pool=Pool(processes=3)

print(pool.map(double,nums))

 

Мы создаем экземпляр пула и создаем процесс с 3 работниками. map() отображает функцию double и повторяемость для каждого процесса.

Другой метод, который возвращает нам результаты наших процессов в пуле, — это метод apply_async().

from multiprocessing import Pool

def double(n):

return n*2

if __name__=='__main__':

pool=Pool(processes=3)

result=pool.apply_async(double,(7,))

print(result.get(timeout=1))

 

Итак, все это было в многопроцессорной обработке Python. Надеюсь, вам понравится наше объяснение.

 

7. Вывод — многопроцессорная обработка Python

В этой статье по многопроцессорности Python мы обсудили полную концепцию многопроцессорности в Python. Кроме того, мы рассмотрели пул многопроцессорных процессов Python, блокировку и процессы. Теперь у вас есть представление о том, как использовать ваши процессоры в полной мере.



2019-12-25T06:55:16
Python

Топ 10 библиотек Python в 2020 году

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

 

1. HTTPX

Как фанат Python, который обычно взаимодействует с API, вы, вероятно, знакомы с библиотекой запросов. Однако запросы не принесут вам пользы, если вы используете асинхронную парадигму, которая все чаще встречается в современных высокопроизводительных приложениях.

Чтобы решить эту проблему, замечательный Том Кристи и его коллеги предлагают нам HTTPX, асинхронный HTTP-клиент нового поколения для нового десятилетия.

Созданный в соответствии с тем же удобством использования запросов, HTTPX предоставляет вам стандартные функции, а также поддержку HTTP/2 и HTTP/1. Другие функции включают вызов непосредственно в веб-приложение Python с использованием протокола ASGI и полное аннотирование типа.

Вам нужно сделать большое количество запросов одновременно? Тогда HTTPX — это новый ответ.

Примечание: HTTPX все еще рассматривается в альфа-версии и в настоящее время разрабатывается только как асинхронный клиент. В будущем клиент синхронизации будет вновь введен.

 

2. Starlette

Starlette — это облегченный фреймворк/инструментарий ASGI с множеством функций, включая поддержку WebSocket и GraphQL, фоновые задачи внутри процесса и действительно высокую производительность. Все они имеют аннотированную кодовую базу на 100% и ноль жестких зависимостей. Думайте об этом как об очень легкой, современной и асинхронной версии Flask.

Он также дает вам гибкость выбора, использовать ли его как полноценную веб-среду или просто как набор инструментов ASGI.

Он работает поверх сервера ASGI, такого как uvicorn, который попал в этот же список в прошлом году.

Если вы думаете о разработке нового веб-приложения, вам непременно следует дать Starlette шанс проявить себя.

 

3. FastAPI

Starlette потрясающая, но очень минималистичная и неубежденная. Это дает вам большую свободу, но иногда вам просто нужна структура, чтобы все было сделано правильно и быстро.

FastAPI от Себастьяна Рамиреса — только это. Это быстро во всех смыслах этого слова.

Новая структура для создания API с помощью Python обеспечивает очень высокую производительность и автоматическую интерактивную документацию на основе стандартов OpenAPI. Он имеет поддержку по умолчанию для Swagger UI и ReDoc, что позволяет вам вызывать и тестировать свой API напрямую из браузера, ускоряя время разработки. Создание API с помощью этого фреймворка происходит быстро и просто.

Эта библиотека также использует один из современных лучших приемов Python: подсказки типов. FastAPI использует подсказки типов для многих вещей, но одна из самых классных функций — это автоматическая проверка и преобразование данных на основе Pydantic.

Опираясь на Starlette, производительность FastAPI не уступает NodeJS и Go, а также имеет встроенную поддержку WebSocket и GraphQL.

И последнее, но не менее важное: в нем содержится лучшая техническая документация, когда-либо написанная для библиотеки с открытым исходным кодом. Серьезно, проверьте это!

 

4. Immutables

Люди в MagicStack вернулись, с простым, но элегантным неизменяемым типом отображения («замороженный дикт»).

Кто может извлечь из этого пользу? Что ж, базовой структурой данных является Tree (HAMT) с отображением хеш-массива, используемая в функциональных языках программирования, таких как Haskell. Самое интересное, что они дают производительность O(log N) для операций set() и get(), что по существу равно O(1) для сравнительно небольших отображений.

Если ваше приложение использует более крупные словари и может повысить производительность, возможно, стоит проверить эту классную новую библиотеку.

 

5. Pyodide

Pyodide — один из таких проектов, который может поразить вас. Он переносит научный стек Python в браузер с помощью WebAssembly, выводя научные вычисления на совершенно новый уровень.

Хотите сократить некоторые цифры с помощью NumPy ? Обрабатывать несколько больших DataFrames с Pandas? График ваши результаты с помощью Matplotlib? Благодаря Pyodide все это и даже больше стало возможным благодаря вашему браузеру.

Что еще лучше: каталог в настоящее время содержит более 35 доступных пакетов. Поистине, небо — это единственный предел.

 

6. Modin

Девиз Modin — масштабировать рабочий процесс Pandas, изменяя одну строку кода, и это действительно так просто. Просто установите Modin, измените операторы импорта и получите в 4 раза больше преимуществ на современных ноутбуках с многоядерными процессорами.

Как это сделать? Мы откроем вам секрет. Modin реализует свой собственный объект modin.pandas.DataFrame, который представляет собой легкий параллельный DataFrame. Использование этого объекта прозрачно, поскольку оно совместимо с API с Pandas, а в фоновом режиме он будет распространять данные и вычисления с использованием вычислительного механизма, такого как Ray или Dask.

Иногда получение больших ускорений требует лишь незначительных изменений в вашем коде, и Modin является доказательством этого.

 

7. Streamlit

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

Вместо того, чтобы тратить часы усилий и тысячи строк кода на разработку приложения, Streamlit позволяет быстро создавать приложения для обмена вашей моделью и анализами. Создание пользовательского интерфейса для взаимодействия и визуализации ваших данных и результатов вашей модели теперь так же просто, как пирог.

Streamlit предоставляет быстрый способ перейти от ваших скриптов Python к приложению производственного уровня, просто добавив несколько строк в ваш код. TensorFlow, Keras, PyTorch, Pandas: Streamlit работает с каждым инструментом связанного научными данными.

 

8. Transformers

Если вы выполняете какую-либо работу, связанную с машинным обучением, вы, вероятно, слышали о важных достижениях в области обработки естественного языка (NLP), произошедших в прошлом году.

Было разработано много новых и высокопроизводительных моделей, таких как BERT, XLNet или roBERTa, которые значительно продвинули современное состояние в широком спектре задач НЛП (таких как классификация текста, машинный перевод, распознавание именованных объектов и многие другие).

Для практиков важно иметь инструменты, которые могут приводить в действие производственные приложения, использующие эти модели, которые не слишком сложны в использовании. Для исследователей важно иметь библиотеки, в которых можно настроить внутреннее оборудование, где можно разрабатывать и экспериментировать с новыми моделями, не тратя слишком много времени на написание стандартного кода.

Удивительные люди из Hugging Face приносят нам библиотеку Transformer, которая включает в себя упакованные, предварительно обученные и готовые к использованию реализации самых современных моделей НЛП. Функциональная совместимость между TensorFlow 2.0 и PyTorch помогла катапультировать эту библиотеку к отраслевому стандарту, поддерживающему как исследовательские, так и производственные приложения. Они также двигаются очень быстро, часто вводя новые модели в библиотеку по мере их разработки исследователями.

Вишня на торте: команда Hugging Face разработала дистиллят DistilBERT, версию очищенную BERT, которая меньше, быстрее, дешевле и легче.

Вы все еще на пороге перехода на современный НЛП с использованием Hugging Face/Transformer? Сегодня ваш счастливый день, вы можете проверить их отличную онлайн-демонстрацию и поразиться ее мощям.

 

9. Detectron2

Исследовательская группа по искусственному интеллекту Facebook (FAIR) расширяет границы компьютерного зрения (CV), разрабатывая новые модели для таких задач, как обнаружение объектов, оценка позы, семантическая/инстанционная сегментация и в последнее время, паноптическая сегментация.

Возможность решения многих из этих проблем казалась научной фантастикой всего пару лет назад. Мы ожидаем от FAIR только самого лучшего, и на этот раз им удается снова потрясти сцену.

Detectron2 — это долгожданное продолжение Detectron, созданное с нуля с помощью PyTorch и оснащенное самыми современными алгоритмами компьютерного зрения.

Библиотеки, подобные этим, особенно сложно спроектировать из-за разнообразных типов использования, которые они должны поддерживать. Как и в случае с трансформаторами Hugging Face, команда FAIR проделала большую работу, разработав Detectron2 очень гибким и модульным способом, что делает его очень привлекательным для приложений для исследования CV. В то же время, он чрезвычайно прост в использовании, что делает его идеальным для людей, которые просто хотят получить быстрые результаты. Да, вы можете использовать Detectron2, и ваша программа сможет «понимать» изображения с помощью всего лишь нескольких строк кода Python.

Время покажет, преуспеет ли Detectron2 в создании яркого сообщества, но пока все выглядит довольно многообещающе. Это вполне может стать «готовым» решением для CV-приложений, где новые — более быстрые и качественные — модели вносятся по мере их создания исследователями. Если вы делаете какую-либо работу с резюме, держите это под своим радаром!

 

10. Metaflow

Это буквально новый ребенок в блоке, так что он едва попал в этот список 2019 года! Но не обманывайте себя: хотя он был выпущен менее 2 недель назад, он уже был внутренне испытан Netflix, пока они не решили открыть исходный код после 2 лет доработки.

Metaflow — это библиотека Python, которая помогает ученым и инженерам по данным создавать реальные проекты для использования в реальном мире. Основной упор делается на облегчение технической нагрузки для нетехнических исследователей данных, таких как вычислительные ресурсы, параллельное выполнение, проектирование архитектуры и управление версиями и многие другие. Netflix сотрудничает с AWS, что позволяет вам легко определять сложные потоки данных с готовой поддержкой распределенных вычислений.

 

Вывод

Мы хотели бы взять несколько строк, чтобы поблагодарить всех в сообществе за их ценный вклад и вас, читателей.

Да, и кстати, если мы упустили вашу любимую библиотеку Python, пожалуйста, не стесняйтесь комментировать ниже. Мы хотели бы услышать, чем вы пользуетесь.



2019-12-20T03:27:37
Python

Python — Замена строки

В этой статье мы поговорим о том, как заменить подстроку внутри строки в Python, используя метод replace().

 

В Python строки представлены как неизменяемые объекты str. Класс str поставляется с большим количеством методов , которые позволяют манипулировать строки.

Метод .replace() принимает следующий синтаксис:

str.replace(old, new[, maxreplace])


 

  • str — Строка, с которой вы работаете.
  • old — Подстрока, которую вы хотите заменить.
  • new — Подстрока, которая заменяет старую подстроку.
  • maxreplace- Необязательный аргумент. Количество совпадений старой подстроки, которую вы хотите заменить. Матчи отсчитываются с начала строки.

Метод возвращает копию строки srt c заменой некоторых или всех совпадений подстроки old на new. Если maxreplace не указан, заменяются все совпадения.

В приведенном ниже примере мы заменяем подстроку «галактике» в строке s на «стране»:

s = 'Давным - давно в далекой-далекой галактике.'

s.replace('галактике', 'стране')


 

В результате получается новая строка:

'Давным - давно в далекой-далекой стране.'


 

Строковые литералы обычно заключаются в одинарные кавычки, хотя можно использовать и двойные кавычки.

Когда задан необязательный аргумент maxreplace, он ограничит количество замененных совпадений. В следующем примере мы заменяем только первое вхождение:

s = 'Мой союзник - это сила, и это могущественный союзник.'

s.replace('союзник', 'друг', 1)


 

Строка результата будет выглядеть так:

Мой друг - это сила, и это могущественный союзник.'


 

Чтобы удалить подстроку, используйте пустую строку » в качестве замены. Например, чтобы удалить «космическая» из следующей строки, вы будете использовать:

s = 'Это не Луна. Это космическая станция.'

s.replace('космическая ', '')


 

Новая строка будет выглядеть следующим образом:

`Это не Луна. Это станция.'


 

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

s.replace('old', 'new') for s in list


Давайте посмотрим на следующий пример:

names = ['Alex AndreyEx', 'Maxx AndreyEx', 'Denis AndreyEx']

new_names = [s.replace('AndreyEx', 'Destroyer') for s in names]

print(new_names)


 

Приведенный выше код создает копию списка со всеми вхождениями подстроки, AndreyEx заменен на Destroyer:

['Alex Destroyer', 'Maxx Destroyer', 'Denis Destroyer']


 

Замена подстроки в строке является одной из самых основных операций при написании кода на Python. Прочитав эту статью, вы должны хорошо понимать, как использовать метод replace().

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2019-12-15T08:12:56
Python

Интерпретатор Python

На самом деле Python — это спецификация языка программирования Python, которая может быть реализована различными способами. Каждая реализация языка программирования Python использует отдельный интерпретатор.

Будучи самым быстрорастущим языком программирования в 2019 году, нет недостатка в интерпретаторах для Python. Но поскольку каждый из них отвечает определенным требованиям, вам необходимо сначала выяснить, какой из них вам подходит.

Прежде чем мы перейдем к объяснению 6 самых популярных интерпретаторов Python, давайте сначала получим краткое понимание интерпретатора.

 

Что такое интерпретатор?

По определению, интерпретатор — это тип компьютерной программы, которая непосредственно выполняет инструкции, написанные на каком-то языке программирования или языке сценариев. Под прямым исполнением мы подразумеваем, что для этого не требуется, чтобы инструкции сначала компилировались в программу на машинном языке.

 

Интерпретатор Python

Итак, со всем этим давайте перейдем к краткому обзору 6 самых популярных интерпретаторов Python:

 

CPython

CPython

Поддержка — до Python 3.7

Это стандартная и наиболее широко используемая реализация языка программирования Python. Написанный на C и Python, CPython является интерпретатором, который предлагает интерфейс сторонней функции с C и другими языками программирования.

CPython также можно классифицировать как компилятор, потому что он преобразует код Python в байт-код перед его интерпретацией. Он использует GIL, Global Interpreter Lock, которая может представлять ограничение, поскольку отключает параллельные потоки Python для процесса.

Как эталонная реализация Python, CPython предлагает наибольшую совместимость с пакетами Python и модулями расширения C. Таким образом, все версии языка программирования Python реализованы на языке C.

CPython является единственным вариантом для использования пакетов Python, которые полагаются на расширения C для правильной работы. Ориентация на CPython необходима, если вы хотите охватить максимально широкую аудиторию для программы, разработанной на языке программирования Python.

 

IronPython

IronPython

Поддержка — до Python 2.7

Реализация языка программирования Python для .NET Framework, IronPython использует библиотеки Python и .NET Framework. Он также может предоставлять код Python другим языкам, относящимся к .NET Framework.

IronPython обеспечивает поддержку динамической компиляции и поставляется с интерактивной консолью. Использование интерпретатора Python позволяет сценариям Python взаимодействовать с объектами .NET. С инструментами Python для Visual Studio IronPython напрямую интегрируется в среду разработки Visual Studio.

 

Jython

Jython

Поддержка — до Python 2.7

Ранее известный как JPython, Jython является реализацией Python, работающей на платформе Java. Написанный на Java и Python, Jython преобразует код Python в байт-код Java и, следовательно, позволяет запускать код Python на любой машине, имеющей JVM.

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

Если вам нужно взаимодействовать с существующей кодовой базой Java или написать код Python для JVM, вы можете сделать ставку на Jython.

 

PyPy

PyPy

Поддержка — до Python 2.7, Python 3.5 и Python 3.6

PyPy — это быстрая, совместимая альтернативная реализация языка программирования Python. Интерпретатор Python реализован в RPython, который является ограниченным статически типизированным подмножеством языка программирования Python .

Обладая JIT-компилятором, PyPy поддерживает C, CLI и JVM. Основная цель PyPy — предложить максимальную совместимость с эталонной реализацией CPython, одновременно повышая производительность.

PyPy используется разработчиками Python, стремящимися повысить производительность определенного кода Python. Согласно официальному сайту PyPy , популярный интерпретатор Python примерно в 4,4 раза быстрее, чем CPython.

 

PythonNet

PythonNet

Поддерживает — Python 2.6 до Python 3.5

PythonNet предлагает практически бесшовную интеграцию нативной установки Python с .NET CLR. Его подход можно считать обратным подходу, который следует за IronPython.

Вместе с Mono, PythonNet позволяет собственной установке Python в операционной системе, отличной от Windows, работать в среде .NET. Можно работать с PythonNet вместе с IronPython без каких-либо проблем.

 

Stackless Python

Stackless Python

Поддержка — до Python 3.7

CPython и другие популярные интерпретаторы Python зависят от вызова C для своего стека. Однако это не относится к интерпретатору Stackless Python.

Хотя Stackless Python использует стек C, он очищается между вызовами функций. Следовательно, интерпретатор Python не зависит от вызова C для своего стека. Как и CPython, Stackless Python написан с использованием C и Python.

Помимо поддержки потоков, Stackless Python предлагает поддержку каналов связи, сопрограмм, предварительно скомпилированных двоичных файлов, циклического планирования, сериализации задач и тасклетов.

Возможно, самая важная особенность Stackless Python — это микропотоки. Эта функция помогает избежать значительной части издержек, связанных с типичными потоками операционной системы.

 

Python 2 или Python 3? Какой выбрать?

С появлением Python 3 в 2008 году, всегда был важный вопрос, чтобы спросить, стоит ли придерживаться более старого Python 2 или перейти на борт самого последнего Python 3.

Ответ может быть легким для новичков в изучении Python; Начните с более нового и лучшего Python 3. Однако выбор не так прост для организаций или профессионалов, которые сильно полагаются на Python для своего бизнеса и имеют огромные базы кода Python.

Большинство приложений Python на сегодняшний день использует Python 2.7. Однако переход на Python 3 со временем увеличивается. Отчасти это связано с тем, что Python 2.7 будет получать обновления безопасности только до 2020 года.

Для создания новых приложений Python вы должны использовать Python 3. Если вы работаете с новой библиотекой Python с открытым исходным кодом, вы можете написать ее как для Python 2, так и для Python 3. Это потому, что значительная часть разработчиков Python по-прежнему расставляет приоритеты с использованием Python 2.

Рекомендуется использовать новейший интерпретатор Python 3.x, поскольку каждая новая версия предлагает улучшенные исправления ошибок, безопасность и стандартные модули библиотеки.

Вы должны придерживаться Python 2, только если у вас есть уже существующая кодовая база в Python 2 или эксклюзивная библиотека для нее.

Если вы искренне любите Python 2 и не хотите переходить на Python 3, это нормально. Однако следует понимать, что после 2020 года Python 2 не будет таким же прибыльным вариантом, как сегодня. Итак, начать работу с Python 3 сегодня, наряду с Python 2, может быть хорошей идеей.

Все!

Это завершает список 6 самых популярных интерпретаторов Python, доступных на данный момент. Вы можете работать с любым из них. Однако у каждого из них есть свои льготы. Таким образом, вы должны выбирать мудрее, особенно когда работаете профессионально.

Хорошим знанием может быть знание нескольких интерпретаторов Python. Таким образом, чем больше вы пытаетесь, тем лучше.



2019-12-11T13:32:37
Python

Как создать исполняемые файлы для Python (от .PY до .EXE)

Сегодня мы увидим, как создавать исполняемые файлы, начиная с наших скриптов Python, чтобы мы могли легко запускать и делиться нашими программами, так как после того, как мы создадим эти приложения, которые мы создадим из наших файлов, будет достаточно щелкнуть по ним, чтобы запустить их, без необходимости установки в системе интерпретатора Python или другие зависимости!

Например, если у вас есть друзья или коллеги, с которыми вы хотите поделиться своей программой, или если вы хотите создать исполняемый файл, чтобы брать его с собой, не беспокоясь о настройке системы каждый раз, когда вам придется ее использовать, эта статья — то, чего вы ждали!

Для этого мы будем использовать инструмент под названием pyinstaller.

Pyinstaller отлично работает как в Windows, так и в Linux и Mac OS, и поэтому все команды, которые мы покажем вам в этой статье, будут такими же, что и вам, независимо от того, в какой операционной системе вы находитесь.

Также очень важно помнить, что pyinstaller не является кросс-компилятором, или, как многие из вас уже предполагали, вы можете создавать исполняемые файлы только для используемой вами операционной системы.

Если вы хотите создать файл .exe, например, а затем исполняемый файл для Windows, вы можете сделать это только из Windows. То же самое относится к файлам .app, которые можно использовать в Mac OS, и для исполняемых файлов Linux.

Процедура создания наших приложений действительно очень и очень проста: внутри виртуальной среды, которую мы используем с нашим скриптом Python, мы даем команду:

pip install pyinstaller

 

После того, как это будет сделано, мы можем использовать его как любое программное обеспечение в командной строки, точно так же, как мы устанавливаем модули через pip:

pyinstaller script_name.py --onefile

 

Давайте посмотрим на вывод в папке, над которой мы работаем, и увидим, что были созданы некоторые новые файлы и папки.

Единственный файл, который нам понадобится, файл, который нас интересует и который мы затем можем передать, будет находиться в папке dist.

Как видите, все работает отлично, и мы можем использовать программу без необходимости знать, как использовать Python, как его настроить, как создать виртуальную среду, установить необходимые зависимости и так далее!

Внутри этого исполняемого файла есть все, что необходимо для правильной работы нашей программы.

Если вы работаете в Windows и генерируете исполняемый файл для программы с графическим интерфейсом, как в этом случае, я предлагаю вам добавить еще один вариант:

pyinstaller script_name.py --noconsole --onefile

 

Опция —noconsole гарантирует, что единственным окном, отображаемым в этих случаях, является графический интерфейс вашей программы, поскольку по умолчанию Windows также открывает системный терминал, который останется активным во время работы программы, что может вызвать путаницу, особенно для менее опытных пользователей.

Мы советуем вам делать тесты и экспериментировать самостоятельно, чтобы полностью понять, что мы имеем в виду.

Эта опция вам не понадобится, если вы обнаружите, что создаете исполняемые файлы для простых сценариев, которые можно использовать из терминала по понятным причинам.

Удачного кодирования! : D



2019-12-10T00:14:46
Python