Дата Сциенце

Како израчунати матрице у Питхону без НумПи-а

Како израчунати матрице у Питхону без НумПи-а
За многе примене потребна вам је математика. У Питхону постоји математички модул који обрађује основе као што су функције заокруживања, факторије и заокруживања. Такође укључује Повер & логаритамске, тригонометријске, угаоне и хиперболичке функције. За сложене бројеве модул је цматх. Они се, међутим, не баве операцијама матрице.

Која је разлика између низова и матрица?

Неки људи траже матрична решења за проблеме низа, па у чему је разлика?  Велика разлика је у томе што су вредности матрице бројеви, низ може садржати друге информације, чак и низове.  Матрице могу представљати једначине, овде их требају већини програмера, барем у случају замене НумПи-а.

Како се врши прорачун матрице?

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

Множење је мало сложеније, али врло мало. Оно што га чини тешким је то што треба да направите много прорачуна за свако решење, ту долазе перформансе. Будући да већина израчунавања не зависе једна од друге, ови прорачуни су изврсни кандидати за паралелно рачунање. ГПУ-ови су дизајнирани за ову врсту прорачуна и дизајнирани су да се лако додају у десктоп системе.

Када требате да направите матричне прорачуне у Питхону, прво решење које пронађете је нумПи.  Међутим, НумПи није увек најефикаснији систем за израчунавање многих матрица.
Овај пост ће покрити које опције имате у Питхону.

Када су вам потребне алтернативе, почните пажљивије гледајући за шта су вам потребне матричне операције. Ваша тренутна инсталација можда већ има или сопствену имплементацију или користи основну библиотеку. Пример је машинско учење, где је потреба за матричним операцијама најважнија. ТенсорФлов има своју библиотеку за матричне операције. Обавезно познајте своју тренутну библиотеку.

У многим случајевима вам је потребно решење које одговара вама. Можда постоје ограничења у НумПи-у, неке библиотеке су брже од НумПи-а и посебно су направљене за матрице. Много пута програмери желе да убрзају свој код па почну да траже алтернативе. Један од разлога је што НумПи не може да ради на ГПУ-има.

Иако се у овом посту говори о алтернативама НумПи-у, библиотеци изграђеној поврх НумПи-а, Тхеано библиотеку треба поменути. Тхеано библиотека је уско интегрисана са НумПи и омогућава ГПУ подржане матрице. Тхеано је већа библиотека за машинско учење, али можете издвојити само функције матрице.

За дубље објашњење употребе Тхеано-а, погледајте ову страницу: хттп: // ввв.марекреи.цом / блог / тхеано-туториал /

СпПи је библиотека посебно за ретке низове, и даље се може користити за матрице. Проређени низ је, иначе, низ који у себи има много нула вредности. Ова библиотека је мала и ефикасна, али је мало ограничена због своје специјализације. Такође користи НумПи, али је ефикаснији него само НумПи.
хттпс: // питхонхостед.орг / сппи /

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

ПиТорцх је библиотека за машинско учење, због чега има матричне операције. Увоз целе библиотеке је претеран ако желите да направите само неколико прорачуна. Међутим, ако тек започињете са пројектом машинског учења, обавезно одлучите да ли је овај намењен вама.
Друга алтернатива је преузимање било које Ц-библиотеке и њено коришћење. Да би то било могуће, постоји решење названо цффи које ће створити интерфејс за вас. Ово решење захтева да већ знате Ц и да креирате омот за сваку функцију која вам је потребна. Тада ће код изгледати збркан и тешко га је прочитати, али ово може вредети у зависности од вашег пројекта.

Ако само желите убрзати све низове и нумеричке функције, уместо тога можете користити нумбу. Нумба је Питхон компајлер. Када га користите, компајлер ће створити бинарни код „тачно на време“, јит. Идеја јит-а се чешће користи са Јавом, али је веома корисна за тешку математику у Питхону. Будући да се Питхон тумачи, проблеме са перформансама можете добити код тешке математике, нумба се брине о томе компајлирањем на ЦПУ или ГПУ по вашем избору.
Доступне су и функције паралелног рачунања, подразумевано компајлер ради са бравом која зауставља покретање многих нити истовремено. Ово можете искључити заставицом све док сте свесни потенцијалних проблема повезаних са паралелним програмирањем.

Закључак

Много пута када започнете програмирање на Питхону или другим језицима, наиђете на ограничења језика, компајлера или нечег другог. Када сте у овој ситуацији, требало би да застанете и размислите о томе која ограничења имате и размислите колико је других могло имати исту ситуацију. У случају Питхон-а и НумПи-а, многи научници и програмери написали су код који захтева брзо извршавање. Ово наследство створило је велики број огранака који могу решити ваш проблем без приморавања да промените језик или напишете ново проширење на овај језик.

Замените тастере миша другачије за различити софтвер помоћу Кс-Моусе Буттон Цонтрол
Можда вам је потребан алат који би могао да промени контролу миша са сваком апликацијом коју користите. Ако је то случај, можете испробати апликацију ...
Преглед бежичног миша Мицрософт Сцулпт Тоуцх
Недавно сам читао о Мицрософт Сцулпт Тоуцх бежични миш и одлучио да га купи. Након што сам га неко време користио, одлучио сам да са њим поделим своје...
Екран Трацкпад и показивач миша АппиМоусе за Виндовс таблете
Корисницима таблета често недостаје показивач миша, посебно када су уобичајени за коришћење преносних рачунара. Паметни телефони и таблети на додир ос...