Водич за СциПи: Шта је Питхон СциПи и како га користити?



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

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

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





Па кренимо. :)

Шта је СциПи?

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



НумПи вс СциПи

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

Потпакети у СциПи-у:

СциПи има низ подпакета за различита научна израчунавања која су приказана у следећој табели:

ИмеОпис
кластерАлгоритми кластеровања
константеФизичке и математичке константе
ффтпацкРутине брзе Фоуриер-ове трансформације
интегришуРешавање интеграционих и обичних диференцијалних једначина
интерполиратиИнтерполација и заглађивање сплина
ЈаУлаз и излаз
линалгЛинеарна алгебра
ја летимН-димензионална обрада слике
одрОртогонална регресија даљине
оптимизираРутине оптимизације и проналажења корена
сигналОбрада сигнала
оскуданПроређене матрице и повезане рутине
просторниСтруктуре и алгоритми просторних података
посебнаПосебне функције
статистикаСтатистичка расподела и функције

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



Ови пакети морају да се увезу искључиво пре употребе. На пример:

из сципи кластера за увоз

Пре него што детаљно погледамо сваку од ових функција, погледајмо прво функције које су уобичајене у НумПи и СциПи.

Основне функције:

Интеракција са НумПи:

СциПи се надовезује на НумПи и зато можете сами користити НумПи функције за руковање низовима. Да бисте детаљно знали о овим функцијама, можете једноставно користити функције хелп (), инфо () или соурце ().

помоћ():

Да бисте добили информације о било којој функцији, можете да користите помоћ() функцију. Постоје два начина на које се ова функција може користити:

  • без икаквих параметара
  • користећи параметре

Ево примера који приказује обе горе наведене методе:

из сципи импорт кластера помоћ (кластер) # с параметром хелп () # без параметра

Када извршите горњи код, прва помоћ () враћа информације о кластер подмодул. Друга помоћ () тражи од корисника да унесе име било ког модула, кључне речи итд. За које корисник жели да тражи информације. Да бисте зауставили извршавање ове функције, једноставно откуцајте „куит“ и притисните Ентер.

инфо ():

Ова функција враћа информације о жељеном , модули итд.

сципи.инфо (кластер)

извор():

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

сципи.соурце (кластер)

Посебне функције:

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

Експоненцијалне и тригонометријске функције:

СциПи-ов пакет специјалних функција пружа бројне функције помоћу којих можете пронаћи експоненте и решити тригонометријске проблеме.

Размотрите следећи пример:

ПРИМЕР:

фром сципи импорт специал а = специал.екп10 (3) принт (а) б = специал.екп2 (3) принт (б) ц = специал.синдг (90) принт (ц) д = специал.цосдг (45) принт ( д)

ИЗЛАЗ:

1000.0
8.0
1.0
0.7071067811865475

У посебном пакету функција СциПи-а присутне су многе друге функције које можете сами испробати.

Функције интеграције:

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

Општа интеграција:

СиПи пружа функцију именовану куад за израчунавање интеграла функције која има једну променљиву. Ограничења могу бити ± & инфин(± Инф) да укаже на бесконачне границе. Синтакса функције куад () је следећа:

СИНТАКСА:

куад (фунц, а, б, аргс = (), фулл_оутпут = 0, епсабс = 1.49е-08, епсрел = 1.49е-08, лимит = 50, бодови = Нема, тежина = Нема, ввар = Нема, воптс = Нема , макп1 = 50, лимлст = 50)

Овде ће функција бити интегрисана између ограничења а и б (такође може бити бесконачно).

ПРИМЕР:

фром сципи импорт специал фром сципи импорт интегриши а = ламбда к: специал.екп10 (к) б = сципи.интеграте.куад (а, 0, 1) принт (б)

У горњем примеру, функција „а“ се процењује између ограничења 0, 1. Када се изврши овај код, видећете следећи излаз.

ИЗЛАЗ:

(3.9086503371292665, 4.3394735994897923е-14)

Двострука интегрална функција:

СциПи пружа дблкуад који се могу користити за израчунавање двоструких интеграла. Двоструки интеграл, као што многи од нас знају, састоји се од две стварне променљиве. Функција дблкуад () узеће функцију као свој параметар, заједно са 4 друге променљиве које дефинишу ограничења и функције ди и дк.

ПРИМЕР:

из сципи увоза интегришите а = ламбда и, к: к * и ** 2 б = ламбда к: 1 ц = ламбда к: -1 интеграте.дблкуад (а, 0, 2, б, ц)

ИЗЛАЗ:

-1,3333333333333335, 1,4802973661668755е-14)

СциПи пружа разне друге функције за процену троструких интеграла, н интеграла, Ромбергових интеграла итд., Које можете детаљније истражити. Да бисте пронашли све детаље о потребним функцијама, користите функцију помоћи.

Функције оптимизације:

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

У основи се састоји од следећег:

  • Неограничена и ограничена минимизација мултиваријантних скаларних функција, тј минимизирати (нпр. БФГС, Невтон Цоњугате Градиент, Нелдер_меад симплек, итд.)
  • Рутине глобалне оптимизације (нпр. Диференцијална_еволуција, двоструко жарење итд.)
  • Минимизација најмањих квадрата и прилагођавање кривине (нпр. Најмањи_квадрати, кривуља_, итд.)
  • Умањивачи скаларних униваријантних функција и коренски проналазачи (нпр. Минимизе_сцалар и роот_сцалар)
  • Решавачи система мултиваријационих једначина помоћу алгоритама као што су хибридни Повелл, Левенберг-Маркуардт.

Функција Росенброок-а:

Росенброок функција ( росен ) је тест тест који се користи за алгоритме за оптимизацију засноване на градијенту. У СциПи-у је дефинисано на следећи начин:

росен-Сципи туториал-едурекаПРИМЕР:

низ објеката у јави
увоз нумпи као нп са сципи.оптимизе увоз росен а = 1,2 * нп.аранге (5) росен (а)

ИЗЛАЗ: 7371.0399999999945

Нелдер-Меад:

ТхеНелдер–Меад метода је нумеричка метода која се често користи за проналажење мин / мак функције у вишедимензионалном простору. У следећем примеру се користи метода минимизирања заједно са Нелдер-Меад алгоритмом.

ПРИМЕР:

фром сципи импорт оптимизе а = [2.4, 1.7, 3.1, 2.9, 0.2] б = оптимизе.минимизе (оптимизе.росен, а, метход = 'Нелдер-Меад') б.к

ИЗЛАЗ: низ ([0,96570182, 0,93255069, 0,86939478, 0,75497872, 0,56793357])

Функције интерполације:

У пољу нумеричке анализе, интерполација се односи на конструисање нових тачака података у оквиру скупа познатих тачака података. Библиотека СциПи састоји се од потпакета названог сципи.интерполате који се састоји одсплине функције и класе, једнодимензионалне и вишедимензионалне (униваријантне и мултиваријантне) класе интерполације итд.

Униваријатна интерполација:

Униваријантна интерполација је у основи подручје прилагођавања кривине којепроналази криву која пружа тачно уклапање у низ дводимензионалних тачака података. СциПи пружа интерп1д функција која се може користити за стварање једноваријантне интерполације.

ПРИМЕР:

импорт матплотлиб.пиплот ас плт фром сципи импорт интерполате к = нп.аранге (5, 20) и = нп.екп (к / 3.0) ф = интерполате.интерп1д (к, и) к1 = нп.аранге (6, 12) и1 = ф (к1) # користи функцију интерполације коју враћа `интерп1д` плт.плот (к, и, 'о', к1, и1, '-') плт.схов ()

ИЗЛАЗ:

Мултиваријантна интерполација:

Мултиваријантна интерполација(просторниинтерполација) је врстаинтерполацијана функцијама које се састоје од више променљивих. Следећи пример демонстрира пример интерп2д функцију.
Интерполација преко 2-Д мреже помоћу функције интерп2д (к, и, з) у основи ће користити низове к, и, з за приближавање неке функције ф: „з = ф (к, и)“ и враћа функцију чији метод позива користи сплине интерполација да би се пронашла вредност нових бодова.
ПРИМЕР:

фром сципи импорт интерполате импорт матплотлиб.пиплот ас плт к = нп.аранге (0,10) и = нп.аранге (10,25) к1, и1 = нп.месхгрид (к, и) з = нп.тан (кк + ии) ф = интерполате.интерп2д (к, и, з, кинд = 'кубни') к2 = нп.аранге (2,8) и2 = нп.аранге (15,20) з2 = ф (кнев, инев) плт. плот (к, з [0,:], 'ро-', к2, з2 [0,:], '-') плт.схов ()

ИЗЛАЗ:

Функције Фуријеове трансформације:

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

ПРИМЕР:

фром сципи.ффтпацк импорт ффт, иффт к = нп.арраи ([0,1,2,3]) и = ффт (к) принт (и)

ИЗЛАЗ: [6. + 0.ј -2. + 2.ј -2. + 0.ј -2.-2.ј]

Слично томе, обрнуто од овог можете пронаћи помоћу иффт функционишу на следећи начин:

ПРИМЕР:

ром сципи.ффтпацк импорт ффт, иффт к = нп.арраи ([0,1,2,3]) и = иффт (к) принт (и)

ИЗЛАЗ: [1.5 + 0.ј -0.5-0.5ј -0.5 + 0.ј -0.5 + 0.5ј]

Функције обраде сигнала:

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

Филтрирање:

Филтрирањем сигнала у основи уклањате нежељене компоненте са њега. Да бисте извршили наручено филтрирање, можете да користите ордер_филтер функцију. Ова функција у основи изводи уређено филтрирање низа. Синтакса ове функције је следећа:

СИНТАКСА:
филтер_поретка (а, домен, ранг)

а = Н-димензионални улазни низ

домаин = маска низа која има исти број димензија као `а`

ранк = Ненегативан број који бира елементе са листе након што је сортиран (0 је најмањи праћен 1 ...)

ПРИМЕР:

од сципи сигнала за увоз к = нп.аранге (35) .ресхапе (7, 5) домаин = нп.идентити (3) принт (к, енд = 'нн') принт (сигнал.ордер_филтер (к, домаин, 1))

ИЗЛАЗ:

[[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]]

[[0. 1. 2. 3. 0.]
[5. 6. 7. 8. 3.]
[10. 11. 12. 13. 8.]
[петнаест. 16. 17. 18. 13.]
[двадесет. 21. 22. 23. 18.]
[25. 26. 27. 28. 23.]
[0. 25. 26. 27. 28.]]

Таласни облици:

Подпакет сципи.сигнал се такође састоји од различитих функција које се могу користити за генерисање таласних облика. Једна од таквих функција је цвркутати . Ова функција је фгенераторски косинусни генератор померен и синтакса је следећа:

СИНТАКСА:
цвркут (т, ф0, т1, ф1, метода = ’линеарна’, пхи = 0, вертек_зеро = Труе)

где,

ПРИМЕР:

из сципи.сигнал импорт цхирп, спектрограм импорт матплотлиб.пиплот ас плт т = нп.линспаце (6, 10, 500) в = цхирп (т, ф0 = 4, ф1 = 2, т1 = 5, метход = 'линеар') плт.плот (т, в) плт.титле ('Линеарно цвркутање') плт.клабел ('време у сек)') плт.схов ()

ИЗЛАЗ:

Линеарна алгебра:

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

Проналажење инверзне матрице:

Математички, инверзна матрица А.је матрицаБ.тако даАБ = ИгдеЈаје идентитетска матрица која се састоји од оних низ главну дијагоналу означених каоБ = А-један. У СциПи-у се ова инверзна вредност може добити помоћу линалг.инв метода.

ПРИМЕР:

импорт нумпи ас нп фром сципи импорт линалг А = нп.арраи ([[1,2], [4,3]]) Б = линалг.инв (А) принт (Б)

ИЗЛАЗ:

[[-0,6 0,4]
[0,8 -0,2]]

Проналажење одредница:

Вредност изведена аритметички из коефицијената матрице позната је као одредница квадратне матрице. У СциПи-у се то може учинити помоћу функције тхе која има следећу синтаксу:

СИНТАКСА:
дет (а, оверврите_а = Фалсе, цхецк_фините = Труе)
где,

а: (М, М) је квадратна матрица

оверврите_а (боол, опционално): Омогућава преписивање података у а

цхецк_фините (боол, опционално): Да бисте проверили да ли се матрица уноса састоји само од коначних бројева

ПРИМЕР:

како користити гоогле цлоуд платформу
импорт нумпи ас нп фром сципи импорт линалг А = нп.арраи ([[1,2], [4,3]]) Б = линалг.дет (А) принт (Б)

ИЗЛАЗ: -5,0

Проређене сопствене вредности:

Својствене вредности су специфични скуп скалара повезаних са линеарним једначинама. АРПАЦК вам омогућава да врло брзо пронађете сопствене вредности (сопствене векторе). Комплетна функционалност АРПАЦК-а је упакованадва интерфејса високог нивоа који су сципи.спарсе.линалг.еигс и сципи.спарсе.линалг.еигсх. еигс. Еигс интерфејс вам омогућава да пронађете сопствене вредности стварних или сложених несиметричних квадратних матрица, док еигсх интерфејс садржи интерфејсе за реално-симетричне или комплексно-хермитијске матрице.

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

ПРИМЕР:

из сципи.линалг импорт осам импорт нумпи као нп А = нп.арраи ([[1, 2, 3, 4], [4, 3, 2, 1], [1, 4, 6, 3], [2, 3, 2, 5]]) а, б = осам (А) принт ('Изабране сопствене вредности:', а) принт ('Сложени ндарраи:', б)

ИЗЛАЗ:

Изабране властите вредности: [-2,53382695 1,66735639 3,69488657 12,17158399]
Комплексни ндарраи: [[0.69205614 0.5829305 0.25682823 -0.33954321]
[-0,68277875 0,46838936 0,03700454 -0,5595134]
[0,23275694 -0,29164622 -0,72710245 -0,57627139]
[0,02637572 -0,59644441 0,63560361 -0,48945525]]

Структуре и алгоритми просторних података:

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

Делаунаи-јеве триангулације:

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

ПРИМЕР:

импорт матплотлиб.пиплот ас плт фром сципи.спатиал импорт Делаунаи поинтс = нп.арраи ([[0, 1], [1, 1], [1, 0], [0, 0]]) а = Делаунаи (бодови) #Делаунаи објект принт (а) принт (а.симплицес) плт.триплот (поинтс [:, 0], поинтс [:, 1], а.симплицес) плт.плот (поинтс [:, 1], поинтс [:, 0], 'о') плт.схов ()

ИЗЛАЗ:

Функције обраде вишедимензионалне слике:

Обрада слике се у основи бави извођењем операција на слици ради преузимања информација или за добијање побољшане слике од оригиналне. Пакет сципи.ндимаге састоји се од низафункције обраде и анализе слика дизајниране за рад са низовима произвољне димензионалности.

Конволуција и корелација:

СциПи пружа бројне функције које омогућавају корелацију и конволуцију слика.

  • Функција корелат1д може се користити за израчунавање једнодимензионалне корелације дуж дате осе
  • Функција корелирати омогућава вишедимензионалну корелацију било ког датог низа са наведеним језгром
  • Функција цонволве1д може се користити за израчунавање једнодимензионалне конволуције дуж дате осе
  • Функција савити се омогућава вишедимензионалну конволуцију било ког датог низа са наведеним језгром

ПРИМЕР:

импорт нумпи ас нп фром сципи.ндимаге импорт цоррелате1д цоррелате1д ([3,5,1,7,2,6,9,4], тежине = [1,2])

ИЗЛАЗ: низ ([9, 13, 7, 15, 11, 14, 24, 17])

ИО датотека:

Пакет сципи.ио пружа бројне функције које вам помажу у управљању датотекама различитих формата као што су МАТЛАБ датотеке, ИДЛ датотеке, датотеке Матрик Маркет итд.

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

увоз сципи.ио као сио

За потпуне информације о потпаковању можете се обратити службеном документу на Филе ИО .

Ово нас доводи до краја овог водича за СциПи. Надам се да сте све јасно разумели. Обавезно вежбајте што је више могуће .

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог блога „СциПи Туториал“ и јавићемо вам се што је пре могуће.

Да бисте стекли детаљно знање о Питхону, заједно са разним апликацијама, можете се пријавити за уживо са 24/7 подршком и доживотним приступом.