Ýòî ñòàðàÿ âåðñèÿ Èíôîðìàòèêà/Àðõèâ/2017/11Á1/numpy çà 14.12.2016 12:44:05.

numpy

Âî-ïåðâûõ, íóæíî óñòàíîâèòü ñáîðêó ïèòîíà ïîä íàçâàíèåì àíàêîíäà ñ ñàéòà https://www.continuum.io/downloads
(áðàòü âåðñèþ äëÿ python 3.5, âåðñèþ äëÿ x64, åñëè ó âàñ 64-õ áèòíàÿ îñü)


Âî-âòîðûõ, ðåêîìåíäóåòñÿ ïåðåõîäèòü íà IDE PyCharm, êîòîðûé èìååò äîñòàòî÷íî ìíîãî ôè÷, êîòîðûå íàì áóäóò óäîáíû.
Îñíîâíûå — ýòî áîëüøîå êîëè÷åñòâî ïîäñêàçîê â ïðîöåññå íàïèñàíèÿ êîäà.
Îñíîâíûå hot key:
Ctrl+Alt+E — âûïîëíèòü âûäåëåííûé êîä â êîíñîëè
Shift+Ctrl+F10 — çàïóñòèòü òåêóùèé ñêðèïò öåëèêîì â îòäåëüíîì ïðîöåññå


Ññûëêè ïî òåìå:
Åñëè âû çíàåòå àíãëèéñêè, òî ëó÷øå âñåãî ïîäîéä¸ò îðèãèíàëüíûé tutorial: https://docs.scipy.org/doc/num[..]user/quickstart.html


Èíà÷å ìîæíî íà÷àòü ñî ñòðàíè÷êè https://pythonworld.ru/numpy/1.html





Çàäà÷è

01. Ìàññèâ íóëåé

Íà âõîä äà¸òñÿ ÷èñëî n. Âûâåäèòå ìàññèâ íóëåé n íà n

02. ×èñëà íà äèàãîíàëè

Íà âõîä äà¸òñÿ ÷èñëî n. Âûâåäèòå ìàññèâ ðàçìåðà n íà n,
â êîòîðîì ïî äèàãîíàëè èäóò ÷èñëà 0 äî n-1, à îñòàëüíûå ÷èñëà ðàâíû 0

03. ×èñëà â íóëåâîé ñòðîêå

Íà âõîä äà¸òñÿ ÷èñëî n. Âûâåäèòå ìàññèâ ðàçìåðà n íà n,
â êîòîðîì â ïåðâîé ñòðî÷êå èäóò ÷èñëà îò 0 äî n-1, à îñòàëüíûå ÷èñëà ðàâíû 0

04. Ñáèòûé ïðèöåë

Íà âõîä äà¸òñÿ ÷èñëà n, r, c. Âûâåäèòå ìàññèâ ðàçìåðà n íà n, â êîòîðîì
â ñòðîêå r è ñòîëáöå c ñòîÿò 1, à îñòàëüíûå ÷èñëà ðàâíû 0

05. Ïî÷¸òíûå åäèíèöû

Íà âõîä äà¸òñÿ ÷èñëî n. Âûâåäèòå ìàññèâ ðàçìåðà n íà n,
â êîòîðîì â ÷¸òíûõ ñòðî÷êàõ ñòîÿò 1, à â íå÷¸òíûõ
íóëè

06. Ðåøåòî

Íà âõîä äà¸òñÿ ÷èñëà n, r, c. Âûâåäèòå ìàññèâ ðàçìåðà n íà n, â êîòîðîì
â êîòîðîì â êàæäîé R-îé ñòðî÷êå è â êàæäîì C-îì ñòîëáöå ñòîÿò 1

07. Øàõìàòû åäèíèö

Íà âõîä äà¸òñÿ ÷èñëî n. Âûâåäèòå ìàññèâ ðàçìåðà n íà n,
èìåþùèé âèä øàõìàòíîé äîñêè.

08. Ðàçëèíîâêà

Íà âõîä äà¸òñÿ ÷èñëî n.  ñëåäóþùåé ñòðîêå èä¸ò íåñêîëüêî ÷èñåë. Âûâåäèòå ìàññèâ ðàçìåðà n íà n,
â êîòîðîì â ñòðîêàõ ñ ïåðå÷èñëåííûìè âûøå èíäåêñàìè ñòîÿò 1.

09. Ïîðÿäîê èíäåêñîâ

Äàíû ÷èñëà w è h 
øèðèíà è âûñîòà êàðòèíêè â ïèêñåëÿõ.
Ñîçäàéòå ïîäõîäÿùèé ìàññèâ, â êîòîðîì ìîæíî õðàíèòü òð¸õöâåòíóþ êàðòèíêó äàííîé øèðèíû è âûñîòû.
Ïðè ýòîì äàííûå â ïàìÿòè äîëæíû õðàíèòüñÿ òàê, ÷òîáû ñíà÷àëà øëè òðè öâåòà îäíîãî ïèêñåëÿ,
çàòåì öâåòà ñëåäóþùåãî ïèêñåëÿ â ýòîé æå ñòðî÷êå èëè ïåðâûé ïèêñåëü èç ñëåäóþùåé ñòðî÷êè.

10. Êàðòèíêè

Ñêà÷àéòå êàðòèíêè: 30x60g è 30x60c. Ïðî÷èòàéòå èõ â numpy-ìàññèâ ïðè ïîìîùè êîìàíä âèäà
from skimage import io
img = io.imread('30x60g.png')
Ñîõðàíÿòü èçìåí¸ííûå êàðòèíêè ìîæíî ïðè ïîìîùè êîìàíäû
from skimage import io
io.imsave('res.png', img)
Èçâëåêèòå èç öâåòíîé êàðòèíêè òîëüêî çåë¸íûé ñëîé è ñîõðàíèòå â îòäåëüíûé ôàéë.

11. Ñîñòûêîâêà

Ñîñòûêóéòå äâå ÷/á êàðòèíêè òàê, ÷òîáû ïîëó÷èëàñü êàðòèíêà 60õ60, è 30õ120. Ñîõðàíèòå èõ â îòäåëüíûå ôàéëû.
Ñäåëàéòå òî æå ñàìîå ñ öâåòíûìè êàðòèíêàìè.

12. Âñòàâêà

Äîáàâüòå â ÷/á êàðòèíêó ïî öåíòðó áåëóþ âåðòèêàëüíóþ ïîëîñó øèðèíîé â 10 ïèêñåëåé. Ñîõðàíèòå êàðòèíêó â îòäåëüíûé ôàéë.
Äîáàâüòå åù¸ è ãîðèçîíòàëüíóþ ñåðóþ ïîëîñó.
Òåïåðü â öâåòíóþ êàðòèíêó äîáàâüòå çåë¸íóþ âåðòèêàëüíóþ ïîëîñó è êðàñíóþ ãîðèçîíòàëüíóþ (êàæäóþ ïî öåíòðó, øèðèíîé 10 ïèêñåëåé)

13. Óäàëåíèå

Óäàëèòå èç êàðòèíîê öåíòðàëüíóþ ïîëîñó øèðèíîé â 10 ïèêñåëåé (âñ¸ àíàëîãè÷íî 12-é çàäà÷å).

14. Îòðåçîê

Ñîçäàéòå áåëóþ êàðòèíêó 100õ100 ïèêñåëåé.
Ïðîâåäèòå íà íåé îòðåçîê èç òî÷êè (x1,y1) â òî÷êó (x2,y2).
Ñîõðàíèòå êàðòèíêó â ôàéë (èëè íàãóãëèòå, êàê å¸ ïîêàçàòü ïðÿìî èç ïðîãðàììû).

15. Ñëó÷àéíîå ïîäìíîæåñòâî ñòðîê

Äàí ìàññèâ ðàçìåðà HxW è ÷èñëî k.
Îòáåðèòå ñëó÷àéíûå k ñòðîê èç ìàññèâà è ñôîðìèðóéòå èç íèõ ìàññèâ ðàçìåðà kxW.

16. Ïåðåìåøàòü ñòðîêè

Ïåðåìåøàéòå ñëó÷àéíûì îáðàçîì ñòðîêè ïðÿìîóãîëüíîãî ìàññèâà

17. Èíäåêñ â ìàññèâå

Äàí ìàññèâ ðàçìåðíîñòè (6,7,8). Êàêîâ èíäåêñ (x,y,z) ñîòîãî ýëåìåíòà?

18. Ïîìåíÿòü çíàê

Äàí ìàññèâ, ïîìåíÿòü çíàê ó ýëåìåíòîâ, çíà÷åíèÿ êîòîðûõ ìåæäó 3 è 8

19. Çàìåíèòü âñå ìàêñèìóìû

Äàí ìàññèâ. Çàìåíèòü âñå çíà÷åíèÿ, ðàâíûå ìàêñèìàëüíîìó, íà -1.

20. Áëèæàéøåå

Íàéòè áëèæàéøåå ê çàäàííîìó çíà÷åíèþ ÷èñëî â çàäàííîì ìàññèâå

21. Ñîðòèðîâêà

Îòñîðòèðîâàòü äàííûé ëèíåéíûé ìàññèâ

22. argsort

Äëÿ êàæäîãî ýëåìåíòà äàííîãî ëèíåéíîãî ìàññèâà íàéäèòå ïîçèöèþ, íà êîòîðóþ îí ïîïàä¸ò, åñëè ìàññèâ îòñîðòèðîâàòü

23. argsort – 2

Äàíû òðè ëèíåéíûõ ìàññèâà äëèíû N.  ïåðâîì ìàññèâå õðàíÿòñÿ ñòîèìîñòè áðóñêîâ, âî âòîðîì – äëèíû, à â òðåòüåì – ìàññû. Îòñîðòèðóéòå ìàññèâû òàê, ÷òîáû äàííûå ïî áðóñêàì øëè â ïîðÿäêå âîçðàñòàíèÿ ñòîèìîñòè.

24. Íîðìèðîâêà

Äàí ìàññèâ äåéñòâèòåëüíûõ ÷èñåë. Îòíîðìèðóéòå (X -> aX+b) åãî òàê, ÷òîáû âñå ÷èñëà ëåæàëè íà îòðåçêå [0,1] è çíà÷åíèÿ 0 è 1 ïðèíèìàëèñü. Ãàðàíòèðóåòñÿ, ÷òî â ìàññèâå åñòü õîòÿ áû äâà ðàçëè÷íûõ ÷èñëà.




matplotlib


Îñíîâíûì ìàòåðèàëîì áóäåò ñëåäóþùèé ðåñóðñ: http://nbviewer.jupyter.org/gi[..]_python/tree/master/


Çàäà÷à 1

Ãëîáàëüíàÿ çàäà÷à: óâèäåòü, ÷òî â ïèòîíå äëÿ óìíîæåíèÿ áîëüøèõ ÷èñåë èñïîëüçóåòñÿ àëãîðèòì Êàðàöóáû, à òàêæå ïîëó÷èòü ïðàêòè÷åñêè åãî àñèìïòîòèêó.
Äîëæåí ïîëó÷èòüñÿ ãðàôèê â äóõå òàêîãî:


py vs gmp 2


Çàäà÷à 2

Èðèñû Ôèøåðà
from sklearn import datasets
iris = datasets.load_iris()
êàðòèíêà