Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

NumPy, Ρ‡Π°ΡΡ‚ΡŒ 1: Π½Π°Ρ‡Π°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹

NumPy β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° языка Python, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, вмСстС с большой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ высокоуровнСвых (ΠΈ ΠΎΡ‡Π΅Π½ΡŒ быстрых) матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с этими массивами.

Установка NumPy

На Windows Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ сайтС Π΅ΡΡ‚ΡŒ exe установщики. Или, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΅Ρ‰Ρ‘ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ сборник Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ http://www.lfd.uci.edu/

НачинаСм Ρ€Π°Π±ΠΎΡ‚Ρƒ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ NumPy являСтся ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив (Π² numpy называСтся numpy.ndarray). Π­Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив элСмСнтов (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ чисСл), ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

НаиболСС Π²Π°ΠΆΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ndarray:

БозданиС массивов

Ѐункция array() трансформируСт Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Π’ΠΈΠΏ элСмСнтов массива зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° элСмСнтов исходной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания).

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания:

Ѐункция array() Π½Π΅ СдинствСнная функция для создания массивов. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ элСмСнты массива Π²Π½Π°Ρ‡Π°Π»Π΅ нСизвСстны, Π° массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ, ΡƒΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ имССтся нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы с ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ исходным содСрТимым (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ создаваСмого массива β€” float64).

Ѐункция zeros() создаСт массив ΠΈΠ· Π½ΡƒΠ»Π΅ΠΉ, Π° функция ones() β€” массив ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡ†. ОбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ dtype:

Ѐункция eye() создаёт Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив)

Ѐункция empty() создаСт массив Π±Π΅Π· Π΅Π³ΠΎ заполнСния. Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС случайно ΠΈ зависит ΠΎΡ‚ состояния памяти Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания массива (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ мусора, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ хранится):

Для создания ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ чисСл, Π² NumPy имССтся функция arange(), аналогичная встроСнной Π² Python range(), Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто списков ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массивы, ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ значСния:

Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΡ€ΠΈ использовании arange() с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° float, слоТно Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π² Ρ‚ΠΎΠΌ, сколько элСмСнтов Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ (ΠΈΠ·-Π·Π° ограничСния точности чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π² Ρ‚Π°ΠΊΠΈΡ… случаях ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ linspace(), которая вмСсто шага Π² качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ число, Ρ€Π°Π²Π½ΠΎΠ΅ количСству Π½ΡƒΠΆΠ½Ρ‹Ρ… элСмСнтов:

fromfunction(): примСняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠΎ всСм комбинациям индСксов

ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ массивов

Если массив слишком большой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ, NumPy автоматичСски скрываСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ массива ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ ΡƒΠ³ΠΎΠ»ΠΊΠΈ.

Если Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вСсь массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.set_printoptions:

И Π²ΠΎΠΎΠ±Ρ‰Π΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ массивов «ΠΏΠΎΠ΄ сСбя». Ѐункция numpy.set_printoptions ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

precision : количСство ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Ρ†ΠΈΡ„Ρ€ послС запятой (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 8).

threshold : количСство элСмСнтов Π² массивС, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ±Ρ€Π΅Π·Π°Π½ΠΈΠ΅ элСмСнтов (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1000).

edgeitems : количСство элСмСнтов Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ размСрности массива (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 3).

linewidth : количСство символов Π² строкС, послС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осущСствляСтся пСрСнос (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 75).

suppress : Ссли True, Π½Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ малСнькиС значСния Π² scientific notation (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ False).

nanstr : строковоС прСдставлСниС NaN (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ‘nan’).

infstr : строковоС прСдставлСниС inf (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ‘inf’).

formatter : позволяСт Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ массивов. Π—Π΄Π΅ΡΡŒ я Π΅Π³ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь (Π½Π° английском).

И Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ numpy, Π° Π² этом пособии я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части ΠΌΡ‹ рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ массивами.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Numpy

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ массивы

БущСствуСт нСсколько способов создания Π² numpy python массивов. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ список Π² Python, Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array:

Π’ΠΈΠΏ массива ΠΏΡ€ΠΈ этом совпадаСт с Ρ‚ΠΈΠΏΠΎΠΌ элСмСнтов. Π’ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ int64. Если Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Ρ‚ΠΎ массиву присваиваСтся Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ записи: Π±Π΅Π· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ созданиС python numpy массива ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½ΠΎ Π½Π° ΠΏΡ€ΠΎΠ²Π°Π», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ систСма распознаСт Π² числах Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Частая ошибка Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ массива с нСсколькими числовыми Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, Π° Π½Π΅ Π² прСдоставлСнии ΠΎΠ΄Π½ΠΎΠ³ΠΎ списка чисСл Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

a = np.array(1,2,3) # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ запись
a = np.array([1,2,3]) # ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ записываСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ:

a = np.array([ [1,2,3], [3,4,5] ])

Π’ΠΈΠΏ массива Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ явно Π²ΠΎ врСмя создания:

a = np.array( [ [0,1], [2,3] ], dtype=complex )

Π’ΠΎΠ³Π΄Π° получСнная Сдиничная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ dtype созданного массива β€” float64.

ΠŸΡ€ΠΈ создании массива часто элСмСнты Π΅Ρ‰Ρ‘ нСизвСстны, Π½ΠΎ извСстСн Ρ€Π°Π·ΠΌΠ΅Ρ€. Для Ρ‚Π°ΠΊΠΈΡ… случаСв Π² NumPy прСдусмотрСно нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для автозаполнСния:

Π’ случаС arange Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Ρ‚ΡŒ остороТными, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π’ этом случаС тяТСло ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство элСмСнтов. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ функция linspace, Π³Π΄Π΅ вмСсто Ρ€Π°Π·ΠΌΠ΅Ρ€Π° шагов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡ… количСство:

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ массивами поэлСмСнтно. Новый массив создаСтся ΠΈ заполняСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

b = np.array([ [4,5], [6,7] ])
c = a+b;

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:
array( [ [5, 7], [9, 11] ])

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° * Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π² numpy поэлСмСнтноС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅:

array( [ [4, 10], [18, 28] ])
Π’ python numpy ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† осущСствляСтся c ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° dot:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ пСрСмноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:

Как ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Π² numpy ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ + = ΠΈ * =, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ элСмСнты Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр. МногиС ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ сумма всСх элСмСнтов массива, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса ndarray:

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ число 3. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ python numpy min β€” осущСствляСт поиск минимального значСния, max β€” максимального, sort β€” сортируСт ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈ Ρ‚.Π΄. Π‘ ΠΏΠΎΠ»Π½Ρ‹ΠΌ списком ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, пСрСйдя ΠΏΠΎ ссылкС.

Π’Π°ΠΊΠΆΠ΅ Π² numpy Π΅ΡΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ sin, cos ΠΈ exp, здСсь ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями (ufunc):
np.exp(a)

ОписанноС β€” ΠΎΡ‡Π΅Π½ΡŒ малая Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ numpy python 3. Если вас заинтСрСсовала эта информация, Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ рСсурсС Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ². Π’ дальнСйшСм ΠΌΡ‹ Π΅Ρ‰Ρ‘ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, с ΡƒΠΊΠ»ΠΎΠ½ΠΎΠΌ Π½Π° Π½Π°ΡƒΠΊΡƒ β€” SciPy.

Numpy – главная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Python, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Ρ‘ Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π΅, Ссли ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ свою Тизнь с Π½Π°ΡƒΠΊΠΎΠΉ, большими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ искусствСнным ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ. Π’ Python Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Numpy Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с числовыми массивами, Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ гистограммы. Π”Π°Π²Π°ΠΉΡ‚Π΅ познакомимся с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ массивы

БущСствуСт нСсколько способов создания Π² numpy python массивов. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ список Π² Python, Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array:

Π’ΠΈΠΏ массива ΠΏΡ€ΠΈ этом совпадаСт с Ρ‚ΠΈΠΏΠΎΠΌ элСмСнтов. Π’ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ int64. Если Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Ρ‚ΠΎ массиву присваиваСтся Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ записи: Π±Π΅Π· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ созданиС python numpy массива ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½ΠΎ Π½Π° ΠΏΡ€ΠΎΠ²Π°Π», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ систСма распознаСт Π² числах Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Частая ошибка Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ массива с нСсколькими числовыми Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, Π° Π½Π΅ Π² прСдоставлСнии ΠΎΠ΄Π½ΠΎΠ³ΠΎ списка чисСл Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

a = np.array(1,2,3) # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ запись
a = np.array([1,2,3]) # ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ записываСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ:

a = np.array([ [1,2,3], [3,4,5] ])

Π’ΠΈΠΏ массива Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ явно Π²ΠΎ врСмя создания:

a = np.array( [ [0,1], [2,3] ], dtype=complex )

Π’ΠΎΠ³Π΄Π° получСнная Сдиничная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ dtype созданного массива β€” float64.

ΠŸΡ€ΠΈ создании массива часто элСмСнты Π΅Ρ‰Ρ‘ нСизвСстны, Π½ΠΎ извСстСн Ρ€Π°Π·ΠΌΠ΅Ρ€. Для Ρ‚Π°ΠΊΠΈΡ… случаСв Π² NumPy прСдусмотрСно нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для автозаполнСния:

Π’ случаС arange Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Ρ‚ΡŒ остороТными, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π’ этом случаС тяТСло ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство элСмСнтов. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ функция linspace, Π³Π΄Π΅ вмСсто Ρ€Π°Π·ΠΌΠ΅Ρ€Π° шагов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡ… количСство:

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ массивами поэлСмСнтно. Новый массив создаСтся ΠΈ заполняСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

b = np.array([ [4,5], [6,7] ])
c = a+b;

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:
array( [ [5, 7], [9, 11] ])

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° * Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π² numpy поэлСмСнтноС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅:

array( [ [4, 10], [18, 28] ])
Π’ python numpy ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† осущСствляСтся c ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° dot:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ пСрСмноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:

Как ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Π² numpy ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ + = ΠΈ * =, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ элСмСнты Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр. МногиС ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ сумма всСх элСмСнтов массива, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса ndarray:

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ число 3. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ python numpy min β€” осущСствляСт поиск минимального значСния, max β€” максимального, sort β€” сортируСт ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈ Ρ‚.Π΄. Π‘ ΠΏΠΎΠ»Π½Ρ‹ΠΌ списком ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, пСрСйдя ΠΏΠΎ ссылкС.

Π’Π°ΠΊΠΆΠ΅ Π² numpy Π΅ΡΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ sin, cos ΠΈ exp, здСсь ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями (ufunc):
np.exp(a)

ОписанноС β€” ΠΎΡ‡Π΅Π½ΡŒ малая Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ numpy python 3. Если вас заинтСрСсовала эта информация, Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ рСсурсС Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ². Π’ дальнСйшСм ΠΌΡ‹ Π΅Ρ‰Ρ‘ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, с ΡƒΠΊΠ»ΠΎΠ½ΠΎΠΌ Π½Π° Π½Π°ΡƒΠΊΡƒ β€” SciPy.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

NumPy

NumPy β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для матСматичСских вычислСний: начиная с Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ заканчивая Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€ΠΎΠΉ. ПолноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” Numerical Python extensions, ΠΈΠ»ΠΈ «ЧисловыС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PythonΒ».

Π£ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ΡΡ‚ΡŒ нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… особСнностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСлали Π΅Π΅ популярным инструмСнтом. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, исходный Π΅Π΅ ΠΊΠΎΠ΄ Π² свободном доступС хранится Π½Π° GitHub, поэтому NumPy Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ open-source ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ для Python.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° написана Π½Π° языках C ΠΈ Fortran. Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки (языки программирования, тСкст ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСобразуСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” Π½Π°Π±ΠΎΡ€ инструкций для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° процСссора. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-компилятора, благодаря Π½Π΅ΠΌΡƒ вычислСния Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках происходят быстрСС), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вычислСния производятся Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΈ эффСктивнСС, Ρ‡Π΅ΠΌ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках (языки программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Ρ‹ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ процСссора ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… устройств). К этим языкам относится ΠΈ сам Python.

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ NumPy

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ NumPy

Для Π½Π°Ρ‡Π°Π»Π° разбСрСмся Π² устройствС массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ NumPy. Рассмотрим ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Он выглядит ΠΊΠ°ΠΊ простая Ρ‚Π°Π±Π»ΠΈΡ†Π° β€” Π΄Π²Π΅ оси Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ячСйки Π²Π½ΡƒΡ‚Ρ€ΠΈ (элСмСнты массива). Если появится Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ось, Ρ‚ΠΎ массив станСт Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΌ. Π’Π°ΠΆΠ½ΠΎΠ΅ условиС β€” всС элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ количСством осСй. Π­Ρ‚Ρƒ Π²Π°Ρ€ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ числом N, ΠΊΠ°ΠΊ Π»ΡŽΠ±ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² матСматичСской Π·Π°Π΄Π°Ρ‡Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ говорят, Ρ‡Ρ‚ΠΎ NumPy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с N-ΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами Π΄Π°Π½Π½Ρ‹Ρ….

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: ΠšΠΎΠΌΡƒ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Python?

Π‘ этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ NumPy ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ вычислСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ случайных чисСл, Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ уравнСния ΠΈΠ»ΠΈ прСобразования Π€ΡƒΡ€ΡŒΠ΅. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ linalg.solve:

Как ΠΈ сам Python, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy отличаСтся простотой Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ использовании. Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ достаточно ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ массивов. НапримСр, Π² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… арифмСтичСских вычислСниях Π΅ΡΡ‚ΡŒ способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ β€ŽΡ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΠ΅ΠΉβ€Ž ΠΈΠ»ΠΈ broadcasting.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

Если Π² массивС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² милях, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€Π°Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° простоС число 1,6 (ΡΠΊΠ°Π»ΡΡ€Π½ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ). NumPy ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² массивС, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ приходится ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ для этого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ NumPy Π½Π° русском языкС Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅Ρ‚, Π° Π² Ρ€ΡƒΠ½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ Π²Ρ‹ΠΆΠΈΠΌΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ спСциалистом высокого уровня Π² Data Science ΠΈΠ»ΠΈ Machine Learning, придСтся ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ английский. ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС.

Python для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π’Ρ‹ смоТСтС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сбор ΠΈ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°Ρ…, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ… ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ скидка 5% ΠΏΠΎ ΠΏΡ€ΠΎΠΌΠΎΠΊΠΎΠ΄Ρƒ BLOG.

Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ?

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ NumPy просто Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС: import numpy as np. НС ΡƒΠ΄ΠΈΠ²Π»ΡΠΉΡ‚Π΅ΡΡŒ, Ссли Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° окаТСтся установлСнной, вСдь ΠΌΠΎΠ΄ΡƒΠ»ΡŒ NumPy Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав мноТСства ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ просто import numpy, ошибки Π² этом Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Но np β€” это общСпринятоС Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ стало ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ ΠΈ упростило процСсс написания ΠΊΠΎΠ΄Π°, поэтому, ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· прописав import numpy as np, Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строках ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ np вмСсто numpy.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Руководство ΠΏΠΎ использованию Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NUMPY

ΠŸΡ€Π΅Π΄ΠΎΠΊ NumPy, Numeric, Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π”ΠΆΠΈΠΌΠΎΠΌ Π₯ΡƒΠ³ΡƒΠ½ΠΈΠ½ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» создан ΠΏΠ°ΠΊΠ΅Ρ‚ Numarray с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’ 2005 Π³ΠΎΠ΄Ρƒ Врэвис ΠžΠ»ΠΈΡ„Π°Π½Ρ‚ выпустил ΠΏΠ°ΠΊΠ΅Ρ‚ NumPy, Π΄ΠΎΠ±Π°Π²ΠΈΠ² особСнности Numarray Π² Numeric. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ Π² Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ поучаствовало ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

NumPy ΠΈΠ»ΠΈ Numerical Python β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python, которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Она Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ эффСктивный ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΠ±Ρ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” www.numpy.org

Установка NumPy Π² Python

Массив NumPy

Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Ρ„ΠΎΡ€ΠΌΠ΅ строк ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы NumPy ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка Python ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π΅Π³ΠΎ элСмСнтам.

Массив NumPy β€” это Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ класс array.array ΠΈΠ· Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами.

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив NumPy.

Атрибуты массива NumPy

ndarray.ndim
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ массива.

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π° свСрху Π±ΡƒΠ΄Π΅Ρ‚ 2, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Β«aΒ» β€” это 2-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив.

ndarray.shape
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ (n,m), Π³Π΄Π΅ n β€” это количСство строк, Π° m β€” количСство ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π° β€” (2,3), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 2 строки ΠΈ 3 ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

ndarray.size
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов Π² массивС.

Π’Ρ‹Π²ΠΎΠ΄ β€” 6, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 2 Ρ… 3.

ndarray.dtype
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ элСмСнтов Π² массивС.

Π’Ρ‹Π²ΠΎΠ΄ β€” Β«int32Β», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число.
МоТно явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… массива NumPy.

ndarray.itemsize
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² массивС Π² Π±Π°ΠΉΡ‚Π°Ρ….

Π’Ρ‹Π²ΠΎΠ΄ β€” 4, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 32/8.

ndarray.data
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами массива. Π­Ρ‚ΠΎ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ получСния доступа ΠΊ элСмСнтам Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ… индСксы.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ список элСмСнтов.

ndarray.sum()
Ѐункция Π²Π΅Ρ€Π½Π΅Ρ‚ сумму всС элСмСнтов ndarray.

ndarray.min()
Ѐункция Π²Π΅Ρ€Π½Π΅Ρ‚ элСмСнт с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ndarray.

ndarray.max()
Ѐункция Π²Π΅Ρ€Π½Π΅Ρ‚ элСмСнт с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ndarray.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ NumPy

numpy.zeroes()
numpy.zeros((rows, columns), dtype)
Π­Ρ‚Π° функция создаст массив numpy с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ 0. Если dtype Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ dtype.

Код Π²Π΅Ρ€Π½Π΅Ρ‚ массив numpy 3Γ—3, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ€Π°Π²Π΅Π½ 0.

numpy.ones()
numpy.ones((rows,columns), dtype)
Π­Ρ‚Π° функция создаст массив numpy с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ 1. Если dtype Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ dtype.

Код Π²Π΅Ρ€Π½Π΅Ρ‚ массив numpy 3 x 3, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ€Π°Π²Π΅Π½ 1.

numpy.empty()
numpy.empty((rows,columns))
Π­Ρ‚Π° функция создаст массив, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ случайным β€” ΠΎΠ½ΠΎ зависит ΠΎΡ‚ состояния памяти.

Код Π²Π΅Ρ€Π½Π΅Ρ‚ массив numpy 3Γ—3, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ случайным.

Π’Ρ‹Π²ΠΎΠ΄ этого ΠΊΠΎΠ΄Π° β€” [5 9 13 17 21]

numpy.sin()
numpy.sin(numpy.ndarray)
Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ синус ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

numpy.reshape()
numpy.reshape(dimensions)
Π­Ρ‚Π° функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния количСства ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ массива numpy. ΠžΡ‚ количСства Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² reshape зависит, сколько ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π² массивС numpy.

Π’Ρ‹Π²ΠΎΠ΄ этого Π³ΠΎΠ΄Π° β€” 2-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив 3Γ—3.

numpy.random.random()
numpy.random.random((rows, column))
Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт гСнСрируСтся случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ ndarray 2Γ—2.

numpy.exp()
numpy.exp(numpy.ndarray)
Ѐункция Π²Π΅Ρ€Π½Π΅Ρ‚ ndarray с ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта.

numpy.sqrt()
numpy.sqrt(numpy.ndarray)
Π­Ρ‚Π° функция Π²Π΅Ρ€Π½Π΅Ρ‚ ndarray с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΊΠΎΡ€Π½Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ NumPy

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с массивом NumPy

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Из этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, познакомились с массивов numpy, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ опСрациями массива numpy, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями numpy.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

NumPy, пособиС для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². Π§Π°ΡΡ‚ΡŒ 1

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² python. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ numpy Π² pythonNumPy β€” это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка Python, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, вмСстС с большой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ высокоуровнСвых матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с этими массивами.

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° рассказываСт ΠΎΠ± основах Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NumPy: создании массивов, ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ…, Π±Π°Π·ΠΎΠ²Ρ‹Ρ… опСрациях, поэлСмСнтном ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, индСксах, срСзах, ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ манипуляции с ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹ массива, объСдинСниС массивов ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π° нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ…. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΡ‹ обсудим повСрхностноС ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠžΡΠ½ΠΎΠ²Ρ‹

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ устанавливали NumPy, Ρ‚ΠΎ Π²Π·ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ здСсь. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ вСрсия Python β€” 2.6.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ NumPy являСтся ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Π­Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° элСмСнтов (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ чисСл), всСх ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, индСксированных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл.

Под Β«ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽΒ» массива ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ осСй. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ слово Β«ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅Β» являСтся Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ, вмСсто Π½Π΅Π³ΠΎ ΠΌΡ‹ Ρ‡Π°Ρ‰Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слова «ось» (axis) ΠΈ «оси» (axes). Число осСй называСтся Ρ€Π°Π½Π³ΠΎΠΌ (rank).

НапримСр, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС [1, 2, 1] это массив Ρ€Π°Π½Π³Π° 1 Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ось. Π”Π»ΠΈΠ½Π° этой оси β€” 3. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, массив

прСдставляСт массив Ρ€Π°Π½Π³Π° 2 (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ это Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив). Π”Π»ΠΈΠ½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ измСрСния (оси) β€” 2, Π΄Π»ΠΈΠ½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ оси β€” 3. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ смотритС глоссарий Numpy.

ndarray.ndim β€” число осСй (ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ) массива. Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, Π² ΠΌΠΈΡ€Π΅ Python число ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π½Π³ΠΎΠΌ.

ndarray.itemsize β€” Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива Π² Π±Π°ΠΉΡ‚Π°Ρ…. НапримСр, для массива ΠΈΠ· элСмСнтов Ρ‚ΠΈΠΏΠ° float64 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ itemsize Ρ€Π°Π²Π½ΠΎ 8 (=64/8), Π° для complex32 этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ€Π°Π²Π΅Π½ 4 (=32/8).

ndarray.data β€” Π±ΡƒΡ„Π΅Ρ€, содСрТащий фактичСскиС элСмСнты массива. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСксов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

БозданиС массивов

Ѐункция array() трансформируСт Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Π’ΠΈΠΏ массива зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° элСмСнтов исходной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π Π°Π· Ρƒ нас Π΅ΡΡ‚ΡŒ массив, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

Π’ΠΈΠΏ массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ явно ΡƒΠΊΠ°Π·Π°Π½ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания:

Часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π°ΡΡΡ ошибка состоит Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array() с мноТСством числовых Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² вмСсто ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ СдинствСнного Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π²ΠΈΠ΄Π΅ списка чисСл:

Ѐункция zeros() создаСт массив Π½ΡƒΠ»Π΅ΠΉ, Π° функция ones() β€” массив Π΅Π΄ΠΈΠ½ΠΈΡ†:

Ѐункция empty() создаСт массив Π±Π΅Π· Π΅Π³ΠΎ заполнСния. Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС случайно ΠΈ зависит ΠΎΡ‚ состояния памяти Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания массива (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ мусора, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ хранится):

ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ массивов

Если массив слишком большой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ, NumPy автоматичСски скрываСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ массива ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ ΡƒΠ³ΠΎΠ»ΠΊΠΈ:

Если Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ происходит Π² большом массивС, вывСдя Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ установки ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ set_printoptions() :

Copy Source | Copy HTML
>>> set_printoptions(threshold=nan)

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Β«Π½Π° мСстС», Π±Π΅Π· создания Π½ΠΎΠ²ΠΎΠ³ΠΎ массива.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ массива соотвСтствуСт Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ массиву, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» списком чисСл, нСзависимо ΠΎΡ‚ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΡ‹. Однако, ΡƒΠΊΠ°Π·Π°Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ axis ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ оси массива:

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π˜Π½Π΄Π΅ΠΊΡΡ‹, срСзы, ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

Π£ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ось приходится ΠΎΠ΄ΠΈΠ½ индСкс. Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми:

Когда индСксов мСньшС, Ρ‡Π΅ΠΌ осСй, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ индСксы ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов:

Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов начинаСтся с ΠΏΠ΅Ρ€Π²ΠΎΠΉ оси:

Copy Source | Copy HTML
>>> for row in b:
. print row
.
[ 0 1 2 3 ]
[ 10 11 12 13 ]
[ 20 21 22 23 ]
[ 30 31 32 33 ]
[ 40 41 42 43 ]

Однако, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ поэлСмСнтно вСсь массив, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ, для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ flat :

Copy Source | Copy HTML
>>> for element in b.flat:
. print element,
.
0 1 2 3 10 11 12 13 20 21 22 23 30 31 32 33 40 41 42 43

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ

Π€ΠΎΡ€ΠΌΠ° массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄:

Ѐункция reshape() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ resize() измСняСт сам массив:

ОбъСдинСниС массивов

Ѐункция column_stack() ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² качСствС столбцов Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива:

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива Π½Π° нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ…

Ѐункция vsplit() Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ массив вдоль Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ оси, Π° array_split() позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ оси, вдоль ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅.

Копии ΠΈ прСдставлСния

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами, ΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ массив, Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅Ρ‚. Π­Ρ‚ΠΎ часто являСтся источником ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ срСди Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ всСго Ρ‚Ρ€ΠΈ случая:

Π’ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ

Python ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ измСняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠ°ΠΊ ссылки, поэтому Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΊΠΎΠΏΠΈΠΉ:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ повСрхностная копия

Π Π°Π·Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ массивов ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠœΠ΅Ρ‚ΠΎΠ΄ view() создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ массива, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ прСдставлСниСм Ρ‚Π΅Ρ… ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ€Π΅Π· массива это прСдставлСниС:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *