Шта тачно можете да урадите са Питхоном? Ево 3 главне апликације Питхона.

Ако размишљате о учењу Питхона - или ако сте недавно почели да га учите - можда се питате:

„За шта тачно могу да користим Питхон?“

Па, на то је шкакљиво питање одговорити, јер постоји толико много апликација за Питхон.

Али временом сам приметио да постоје 3 главне популарне апликације за Питхон:

  • Веб развој
  • Наука о подацима - укључујући машинско учење, анализу података и визуелизацију података
  • Сцриптинг

Хајде да разговарамо о сваком од њих редом.

Веб развој

Веб оквири засновани на Питхону попут Дјанго и Фласк недавно су постали веома популарни за веб развој.

Ови веб оквири помажу вам у креирању кода на страни сервера (позадински код) у Питхону. То је код који се покреће на вашем серверу, за разлику од корисничких уређаја и прегледача (предњи код). Ако нисте упознати са разликом између позадинског и предњег кода, погледајте моју фусноту испод.

Али сачекајте, зашто ми треба веб оквир?

То је зато што веб оквир олакшава изградњу заједничке позадинске логике. То укључује мапирање различитих УРЛ адреса на делове Питхон кода, бављење базама података и генерисање ХТМЛ датотека које корисници виде у својим прегледачима.

Који Питхон веб фрамеворк треба да користим?

Дјанго и Фласк су два најпопуларнија Питхон веб оквира. Препоручио бих један од њих ако тек започињете.

Која је разлика између Дјанго и Фласк?

Постоји изврстан чланак о овој теми Гаретх Двиер-а, па дозволите ми да га цитирам овде:

те>

Главни контрасти:

  • Чутура пружа једноставност, флексибилност и фино зрнасту контролу. Неинфинисан је (омогућава вам да одлучите како желите да примените ствари).
  • Дјанго пружа свеобухватно искуство: одмах добијате администраторску плочу, интерфејсе базе података, ОРМ [објектно-релационо мапирање] и структуру директоријума за своје апликације и пројекте.

Вероватно би требало да изаберете:

  • Чутура, ако сте усредсређени на искуство и могућности учења или ако желите већу контролу над тим које компоненте да користите (на пример, које базе података желите да користите и како желите да комуницирате са њима).
  • Дјанго, ако сте фокусирани на коначни производ. Нарочито ако радите на директној апликацији, попут веб странице са вестима, е-продавнице или блога, и желите да увек постоји један, очигледан начин рада.

те>

Другим речима, ако сте почетник, Фласк је вероватно бољи избор јер има мање компонената за решавање. Такође, Фласк је бољи избор ако желите више прилагођавања.

С друге стране, ако желите да направите нешто директно, Дјанго ће вам вероватно омогућити да брже стигнете тамо.

Ако желите да научите Дјанго, препоручујем књигу под називом Дјанго за почетнике. Можете га пронаћи овде.

Овде можете наћи и бесплатна поглавља те књиге.

Добро, идемо на следећу тему!

Наука о подацима - укључујући машинско учење, анализу података и визуелизацију података

Пре свега, хајде да преглед шта машина учење је .

Мислим да би најбољи начин да објасним шта је машинско учење био давање једноставног примера.

Рецимо да желите да развијете програм који аутоматски открива оно што је на слици.

Дакле, с обзиром на ову доњу слику (слика 1), желите да ваш програм препозна да је то пас.

С обзиром на овај други испод (слика 2), желите да ваш програм препозна да је табела.

Можете рећи, па, могу само да напишем неки код да то учиним. На пример, можда ако на слици има пуно светло браон пиксела, онда можемо рећи да је то пас.

Или можда, можете да смислите како да откријете ивице на слици. Тада, можете рећи, ако има много равних ивица, онда је то сто.

Међутим, овакав приступ постаје прилично тежак. Шта ако је на слици бели пас без смеђе длаке? Шта ако слика приказује само округле делове стола?

Овде долази до машинског учења.

Машинско учење обично примењује алгоритам који аутоматски открива образац у датом инпуту.

Рецимо, 1.000 слика пса и 1.000 слика стола можете дати алгоритму за машинско учење. Тада ће научити разлику између пса и стола. Кад му дате нову слику пса или стола, моћи ће да препозна о коме се ради.

Мислим да је ово донекле слично ономе како беба учи нове ствари. Како беба научи да једна ствар личи на пса, а друга на стол? Вероватно из гомиле примера.

Беби вероватно не кажете изричито: „Ако је нешто длакаво и има светло смеђу косу, онда је то вероватно пас.“

Вероватно бисте само рекли: „То је пас. Ово је такође пас. А овај је сто. Тај је такође сто “.

Алгоритми машинског учења раде приближно на исти начин.

Исту идеју можете применити на:

  • системи препорука (мислите ИоуТубе, Амазон и Нетфлик)
  • препознавање лица
  • препознавање гласа

између осталих апликација.

Популарни алгоритми машинског учења о којима сте можда чули укључују:

  • Неуронске мреже
  • Дубоко учење
  • Подржавају векторске машине
  • Случајна шума

Можете да користите било који од горе наведених алгоритама за решавање проблема са обележавањем слика који сам раније објаснио.

Питхон за машинско учење

Постоје популарне библиотеке за машинско учење и оквири за Питхон.

Два најпопуларнија су сцикит-леарн и ТенсорФлов .

  • сцикит-леарн долази са уграђеним неким од популарнијих алгоритама за машинско учење. Неке од њих сам горе поменуо.
  • ТенсорФлов је више библиотека ниског нивоа која вам омогућава да направите прилагођене алгоритме машинског учења.

Ако тек започињете са пројектом машинског учења, препоручио бих да прво започнете са сцикит-леарн. Ако почнете да наилазите на проблеме са ефикасношћу, онда бих почео да истражујем ТенсорФлов.

Како да научим машинско учење?

Да бих научио основе машинског учења, препоручио бих или курс Станфорд-а или Цалтецх-а за машинско учење.

Имајте на уму да вам је потребно основно знање рачуна и линеарне алгебре да бисте разумели неке од материјала на тим курсевима.

Тада бих вежбао оно што сте научили на једном од тих курсева са Кагглеом. То је веб локација на којој се људи такмиче у изради најбољег алгоритма машинског учења за дати проблем. Имају лепе водиче и за почетнике.

Шта је са анализом података и визуелизацијом података?

Да бих вам помогао да разумете како би ово могло изгледати, даћу вам овде једноставан пример.

Рецимо да радите у компанији која неке производе продаје на мрежи.

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

Из овог графикона можемо видети да су мушкарци ове недеље купили око 400 јединица овог производа, а жене око 350 јединица овог производа.

Као аналитичар података, могли бисте да изнесете неколико могућих објашњења ове разлике.

Једно очигледно могуће објашњење је да је овај производ популарнији код мушкараца него код жена. Друго могуће објашњење може бити да је величина узорка премала и да је та разлика настала случајно. А још једно могуће објашњење може бити да мушкарци из неког разлога више купују овај производ више само недељом.

Да бисте разумели које је од ових објашњења тачно, можете нацртати још један графикон попут овог.

Уместо да приказујемо податке само за недељу, ми их гледамо током целе недеље. Као што видите, на овом графикону видимо да је та разлика прилично конзистентна током различитих дана.

Из ове мале анализе могли бисте закључити да је најуверљивије објашњење ове разлике то што је овај производ једноставно популарнији код мушкараца него код жена.

С друге стране, шта ако уместо тога видите овакав графикон?

Шта онда објашњава разлику у недељу?

Могли бисте рећи, можда мушкарци из неког разлога теже купују више овог производа само у недељу. Или је можда била случајност што су је мушкарци у недељу купили више.

Дакле, ово је поједностављени пример како анализа података може изгледати у стварном свету.

Рад на анализи података који сам радио док сам радио у Гоогле-у и Мицрософту био је врло сличан овом примеру - само сложенији. Заправо сам користио Питхон у Гоогле-у за ову врсту анализе, док сам користио ЈаваСцрипт у Мицрософт-у.

Користио сам СКЛ у обе те компаније за извлачење података из наших база података. Тада бих користио Питхон и Матплотлиб (на Гоогле-у) или ЈаваСцрипт и Д3.јс (на Мицрософт-у) за визуализацију и анализу ових података.

Анализа / визуализација података помоћу Питхона

Једна од најпопуларнијих библиотека за визуелизацију података је Матплотлиб.

Добра је библиотека за почетак јер:

  • Лако је започети
  • На њему се заснивају и неке друге библиотеке попут Сеаборн. Дакле, учење Матплотлиба ће вам помоћи да касније научите ове друге библиотеке.

Како да научим анализу / визуализацију података помоћу Питхона?

Прво би требало да научите основе анализе података и визуелизације. Када сам тражио добре ресурсе за ово на мрежи, нисам могао да их пронађем. Тако сам на крају направио ИоуТубе видео на ову тему:

Такође сам завршио читав курс о овој теми на Плуралсигхт-у, који можете похађати бесплатно пријављивањем на њихов десетодневни бесплатни пробни период.

Препоручио бих обојицу.

Након што научите основе анализе података и визуелизације, биће вам од помоћи и учење основа статистике са веб локација попут Цоурсере и Кхан Ацадеми.

Сцриптинг

Шта је скриптирање?

Скриптирање се обично односи на писање малих програма који су дизајнирани за аутоматизацију једноставних задатака.

Дакле, даћу вам пример из мог личног искуства овде.

Радио сам у малом стартупу у Јапану, где смо имали систем за подршку путем е-поште. То нам је био систем за одговарање на питања која су нам купци слали е-поштом.

Када сам тамо радио, имао сам задатак да пребројим број е-порука које садрже одређене кључне речи како бисмо могли да анализирамо е-пошту коју смо добили.

Могли смо то да урадимо и ручно, али уместо тога, написао сам једноставан програм / једноставну скрипту за аутоматизацију овог задатка.

У ствари, тада смо за то користили Руби, али Питхон је такође добар језик за ову врсту задатака. Питхон је погодан за ову врсту задатка углавном зато што има релативно једноставну синтаксу и лако се пише. Такође је брзо са њим написати нешто мало и тестирати.

Шта је са уграђеним апликацијама?

Нисам стручњак за уграђене апликације, али знам да Питхон ради са Расберри Пи. Чини се као популарна апликација међу хардверским хобистима.

Шта је са играма?

Библиотеку названу ПиГаме могли бисте користити за развој игара, али то није најпопуларнији механизам за игре тамо. Могли бисте га користити за изградњу хоби пројекта, али лично га не бих изабрао ако се озбиљно бавите развојем игара.

Уместо тога, препоручио бих да започнете са Унити са Ц #, који је један од најпопуларнијих игара. Омогућава вам изградњу игре за многе платформе, укључујући Мац, Виндовс, иОС и Андроид.

Шта је са десктоп апликацијама?

Могли бисте да направите један са Питхоном користећи Ткинтер, али ни то не изгледа као најпопуларнији избор.

Уместо тога, чини се да су језици попут Јава, Ц # и Ц ++ популарнији за ово.

Недавно су неке компаније почеле да користе ЈаваСцрипт и за креирање десктоп апликација.

На пример, апликација Слацк за рачунаре је направљена са нечим што се зове Елецтрон. Омогућава вам израду апликација за радне површине са ЈаваСцрипт-ом.

Лично, ако бих правио апликацију за рачунаре, пристао бих на ЈаваСцрипт опцију. Омогућава вам да поново користите део кода из веб верзије ако га имате.

Међутим, ни ја нисам стручњак за десктоп апликације, па вас молим да ме обавестите у коментару ако се са тим не слажете или се слажете са мном.

Питхон 3 или Питхон 2?

Препоручио бих Питхон 3 јер је модернији и у овом тренутку је популарнија опција.

Фуснота: Напомена о позадинском коду у односу на предњем коду (за случај да нисте упознати са терминима):

Рецимо да желите да направите нешто попут Инстаграма.

Затим ћете морати да креирате предњи код за сваки тип уређаја који желите да подржите.

Можете користити, на пример:

  • Свифт за иОС
  • Јава за Андроид
  • ЈаваСцрипт за веб прегледаче

Сваки скуп кода извршиће се на свакој врсти уређаја / прегледача. Ово ће бити скуп кода који одређује какав ће бити изглед апликације, како тастери треба да изгледају када их кликнете итд.

Ипак, и даље ће вам бити потребна могућност чувања информација и фотографија корисника. Желећете да их сачувате на серверу, а не само на уређајима својих корисника како би следбеници сваког корисника могли да прегледају његове фотографије.

Овде долази позадински код / ​​код на страни сервера. Морате да напишете неки позадински код да бисте урадили следеће ствари:

  • Пратите ко кога прати
  • Стисните фотографије тако да не заузимају толико простора за складиштење
  • Препоручујем фотографије и нове рачуне за сваког корисника у откривања функције

Дакле, ово је разлика између позадинског и предњег кода.

Иначе, Питхон није једини добар избор за писање позадинског кода / кода на страни сервера. Постоји много других популарних избора, укључујући Ноде.јс, који је заснован на ЈаваСцрипт-у.

Свиђа вам се овај чланак? Тада би вам се могао свидети и мој ИоуТубе канал.

Имам ИоуТубе канал за едукацију о програмирању под називом ЦС Дојо са више од 440 000 претплатника, где производим више садржаја попут овог чланка.

На пример, можда ће вам се свидети ови видео снимци:

У сваком случају, хвала пуно што сте прочитали мој чланак!