Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

пишСм свою Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†ΡƒΒ» Π½Π° Python

Π˜Π·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Одним нравится сначала ΡˆΡ‚ΡƒΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Ρ‘ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π½Π° любимом Stackoverflow. А ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π½Π°Π²Ρ‹ΠΊΠΈ управлСния Π²Π΅Ρ€Ρ‚ΠΎΠ»Ρ‘Ρ‚ΠΎΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Π±ΠΎΠ΅Π²Ρ‹Ρ… Сдиноборств ΠΏΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ прямо Π² ΠΌΠΎΠ·Π³.

Π’ любом случаС Π±Π΅Π· практичСских ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. ПослС ускорСнной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ НСо всё Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ спарринг с ΠœΠΎΡ€Ρ„Π΅ΡƒΡΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Волько Π²ΠΎΡ‚ упраТнСния Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅. Одно Π΄Π΅Π»ΠΎ β€” Π»ΠΈΡ…ΠΎ Π²Π·Π»Π΅Ρ‚Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΏΠΎΡ‚ΠΎΠ»ΠΎΠΊ ΠΈ ΠΏΡ€ΠΎΠ»ΠΎΠΌΠΈΡ‚ΡŒ Π±Π°Π»ΠΊΠΈ восточного спортзала, ΠΈ совсСм Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π½ΠΎ час Π·Π° часом ΡˆΠ»ΠΈΡ„ΠΎΠ²Π°Ρ‚ΡŒ своё мастСрство.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Wikimedia Commons

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Ρ†Π΅Π»ΠΈ

Π£Ρ‡Π΅Π±Π½ΠΈΠΊΠΈ программирования Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π±Π»Π΅Ρ‰ΡƒΡ‚. Π’ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ пособий упраТнСния ΠΏΠΎΡ…ΠΎΠΆΠΈ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΈ Π½Π΅ особо интСрСсны: создайтС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, нарисуйтС ΠΊΡ€ΡƒΠ³ Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠΎΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ сайт ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Β«Π½ΡƒΠΆΠ½ΠΎΠΉΒ» Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠΉ Π΅Ρ€ΡƒΠ½Π΄Ρ‹. ΠšΡƒΠ΄Π° ΡƒΠΆ Ρ‚ΡƒΡ‚ Π΄ΠΎ достовСрной ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π₯отя…

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ Π²Π·ΡΡ‚ΡŒ всё это Π² свои Ρ€ΡƒΠΊΠΈ ΠΈ Π½Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ упраТнСния ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ? Π”Π° Ρ…ΠΎΡ‚ΡŒ Π±Ρ‹ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ Π»ΠΈΡ‡Π½ΡƒΡŽ Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†ΡƒΒ». ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ Ρ‚Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ нСбоскрёбы, ΡΡ‚ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Ρ‚ΠΎΠΉ эпохи ΠΈ вСздСсущиС Π½Π΅ΠΏΠΎΠ±Π΅Π΄ΠΈΠΌΡ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹ Π‘ΠΌΠΈΡ‚Ρ‹. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€Ρƒ-Ρ‚Ρ€ΠΎΠΉΠΊΡƒ мСсяцСв ΠΏΠΎΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. Но Π»ΡŽΠ±ΠΎΠΌΡƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ программисту ΠΏΠΎΠ΄ силу Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ модСль ΠΊΡƒΠ»ΡŒΡ‚ΠΎΠ²ΠΎΠΉ заставки со ΡΡ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎ экрану Π·Π΅Π»Ρ‘Π½Ρ‹ΠΌΠΈ струйками Ρ†ΠΈΡ„Ρ€. Π­Ρ‚ΠΈΠΌ ΠΈ займёмся.

Π—Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ заставку ΠΌΠΎΠΆΠ½ΠΎ практичСски Π½Π° любом языкС. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° Β«Π²Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΠΌΠΎΠ³ΡƒΡ‡Π΅ΠΌΒ» Python.

ПишСм тСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅

Для Π½Π°Ρ‡Π°Π»Π° опрСдСлимся, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. НапишСм сами сСбС нСбольшоС тСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ β€” всСгда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†ΡƒΒ», ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ сама подскаТСт ΠΎΠ±Ρ€Π°Π· β€” Ρ‚Ρ‘ΠΌΠ½ΠΎΠ΅ консольноС ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‚Π΅ΠΊΠ°Ρ‚ΡŒ струйки Π·Π΅Π»Ρ‘Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€. Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ интСрСснСС, ΠΏΡƒΡΡ‚ΡŒ ΠΎΠ½ΠΈ Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ с Ρ€Π°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ струйки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ β€” яркий Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ ноль β€” ΠΈ ΠΊΠΎΠ½Π΅Ρ†. ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΡƒΡΡ‚ΡŒ скорости двиТСния Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° струйки Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π—Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅ Ρ‚Π°ΠΊ ΠΈ слоТно. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ β€” всСго лишь Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ.

Π“ΠΎΡ‚ΠΎΠ²ΠΈΠΌ инструмСнты

Как полагаСтся, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° стандартныС:

import sys
import random
import time

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с консолью Windows Π½Π°ΠΌ понадобятся ΠΌΠΎΠ΄ΡƒΠ»ΠΈ bext ΠΈ colorama. Как ΠΈΡ… ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip, Π²Ρ‹ ΡƒΠΆΠ΅, навСрняка, Π·Π½Π°Π΅Ρ‚Π΅. НуТно ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Но сдСлаСм это ΠΏΠΎ всСм ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ β€” с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ:

try:
    import bext, colorama
except ImportError:
    print ('Для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ bext ΠΈ colorama.')
    sys.exit ()

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ консоль:

bext.title ('Matrix') # МСняСм заголовок консольного окна
bext.clear () # ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ консольноС ΠΎΠΊΠ½ΠΎ
bext.hide () # Π‘ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ курсор Π² консольном ΠΎΠΊΠ½Π΅
width, height = bext.size () # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ консольного ΠΎΠΊΠ½Π°
width -= 1
height -= 1

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ завСсти константы с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ для модуля colorama.

Нам Π½ΡƒΠΆΠ΅Π½ Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΈ Ρ‚Ρ‘ΠΌΠ½ΠΎ-Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ:

lgreen = colorama.Fore.LIGHTGREEN_EX
green = colorama.Fore.GREEN

Windows β€” ΡˆΡ‚ΡƒΠΊΠ° хитрая ΠΈ противорСчивая. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ green Π² консоли β€” это Ρ‚Ρ‘ΠΌΠ½ΠΎ-Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ.

Π˜Π·ΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅ΠΌ Π°Π½Ρ‚ΠΈΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡŽ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ Π½Π°Π΄ самым Π³Π»Π°Π²Π½Ρ‹ΠΌ вопросом: ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π°ΠΌ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΏΠ»ΠΈ Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹Β»? КаТдая капля β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ВсС ΠΊΠ°ΠΏΠ»ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅, Π½ΠΎ Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ опишСм основныС дСйствия с ΠΊΠ°ΠΏΠ»Π΅ΠΉ ΠΈ всС Π΅Ρ‘ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΏΠ»ΠΈ стСкали с Ρ€Π°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… случайный Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ β€” Π² ΡˆΠ°Π³Π°Ρ…. КакиС-Ρ‚ΠΎ ΠΊΠ°ΠΏΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС обновлСния нашСй ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ€Π΅ΠΆΠ΅.

Как ΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ с Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΠΊΠΎΠ½Ρ†ΠΎΠΌ струйки? Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Β«Π²Ρ‹ΡΡ‹Ρ…Π°Ρ‚ΡŒΒ», ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ со своСй ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. НС Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. ΠŸΡƒΡΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΊΠΎΠ½Π΅Ρ† Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΏΠ»Π΅ΠΉ, Π½ΠΎ Ρ‡Ρ‘Ρ€Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°. Вакая «капля» ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρ‹, Π° Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΡΡ‚ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ…. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ прямо какая-Ρ‚ΠΎ антикапля, антиматСрия β€” красиво ΠΈ ΡΡ‚ΠΈΠ»ΡŒΠ½ΠΎ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ капля ΠΈ антикапля Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΌ классС.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΊΠ°ΠΏΠ»ΠΈ

Π˜Ρ‚Π°ΠΊ, всС дСйствия с каплями ΠΈ антикаплями ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… класса. Назовём Π΅Π³ΠΎ Drop ΠΈ напишСм ΠΌΠ΅Ρ‚ΠΎΠ΄ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса:

def __init__ (self):
    self.x = random.randint (0, width) # ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ
    self.y = -1 # ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ - Π·Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ экрана
    self.drop_type = random.randint (0, 1) # Π’ΠΈΠΏ: антикапля ΠΈΠ»ΠΈ капля
    self.timeout = random.randint (0, 3) # Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ пСрСмСщСния
    self.wait_count = random.randint (0, 3) # Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΠ°ΡƒΠ·Ρ‹

Π‘ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ x ΠΈ y всё понятно. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π΅Π½ -1, Ρ‡Ρ‚ΠΎΠ±Ρ‹ капля Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ Π½Π° экранС. Атрибуты timeout ΠΈ wait_count Π½ΡƒΠΆΠ½Ρ‹ для обСспСчСния Ρ€Π°Π·Π½ΠΎΠΉ скорости падСния капСль. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ стСкания, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ счётчик.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΊΠ°ΠΏΠ»ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ напишСм ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСмСщСния ΠΊΠ°ΠΏΠ»ΠΈ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π΅Ρ‘ скорости.

def move (self):
    if drop.wait_count < drop.timeout: # Пока Ρ€Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ
        drop.wait_count += 1 # Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счётчик ΠΏΠ°ΡƒΠ·Ρ‹
        return False
    else: # Π£ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ
        drop.wait_count = 0 # БбрасываСм счётчик ΠΏΠ°ΡƒΠ·Ρ‹
        drop.y += 1 # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ каплю ΠΈΠ»ΠΈ Π°Π½Ρ‚ΠΈΠΊΠ°ΠΏΠ»ΡŽ Π½Π° шаг Π²Π½ΠΈΠ·
        return True

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Ρ„Π°ΠΊΡ‚ пСрСмСщСния ΠΊΠ°ΠΏΠ»ΠΈ. Или Π°Π½Ρ‚ΠΈΠΊΠ°ΠΏΠ»ΠΈ β€” всё Ρ€Π°Π²Π½ΠΎ.

РисуСм струйку

Π‘ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Настало врСмя Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ.

def draw (self):
    if self.drop_type == 1:
        symbol = str (random.randint (1, 9))
        con_print (self.x, self.y, green, symbol)
        self.zero_draw () # РисуСм яркий ноль
    else:
        con_print (self.x, self.y, green, ' ')

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… Π΅Ρ‰Ρ‘ Π½Π΅ написанных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: con_print ΠΈ zero_draw. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ символ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ мСсто консольного ΠΎΠΊΠ½Π°. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ яркий ноль Π² Π½Π°Ρ‡Π°Π»Π΅ струйки.

Π’ΠΎΡ‚, собствСнно, ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄:

def zero_draw (self):
    if (self.y < height):
    con_print (self.x, self.y+1, lgreen, '0')

ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ капСль

ΠœΡ‹ ΡƒΠΆΠ΅ поняли, Ρ‡Ρ‚ΠΎ Ρƒ нас получаСтся Π½Π΅ простая Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°Β», Π° философская. ΠŸΠΎΡΠ΅ΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΏΠ»ΠΈ ΠΈ Π°Π½Ρ‚ΠΈΠΊΠ°ΠΏΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ края экрана, заставим ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ€ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ. Они ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Тизнь Ρƒ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π½Π°ΠΌ всСго Π΄Π²ΡƒΡ… строк:

def renew (self):
    self.__init__ ()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ. Класс Drop Π³ΠΎΡ‚ΠΎΠ².

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкст Π² консоль

ВырвСмся Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ класса Drop ΠΈ напишСм Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π² консольноС ΠΎΠΊΠ½ΠΎ.

Если ΠΌΡ‹ попытаСмся Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ консольного ΠΎΠΊΠ½Π°, Ρ‚ΠΎ снизу автоматичСски добавится Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° строка. НичСго Π½Π΅ подСлаСшь: Π² этом мСстС Π² нашСй идСальной Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π΅Β» Π±ΡƒΠ΄Π΅Ρ‚ Β«Π±ΠΈΡ‚Ρ‹ΠΉ пиксСль»:

def is_rb_corner (x, y):
    if x==width and y==height:
        return True
    else:
        return False

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ символ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС.

def con_print (x, y, color, symbol):
    if not is_rb_corner (x, y):
        bext.goto (x, y)
        sys.stdout.write (color)
        print (symbol, end='')

Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ всё Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ

ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нашСй Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹Β» Π³ΠΎΡ‚ΠΎΠ²Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ всё ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ вмСстС ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ массив капСль ΠΈ Π°Π½Ρ‚ΠΈΠΊΠ°ΠΏΠ΅Π»ΡŒ (ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° родится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” Π΄Π΅Π»ΠΎ случая).

drops = []
for i in range (1, width*2//3):
    drop = Drop ()
    drops.append (drop)

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, самый Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»:

while True:
    for drop in drops:
        if drop.move (): # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнта
            drop.draw () # ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ элСмСнт
            if drop.y >= height: # Достигли Π΄Π½Π°
                drop.renew () # ОбновляСм элСмСнт
    key = bext.getKey (blocking = False) # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π°ΠΆΠ°Ρ‚Π° Π»ΠΈ клавиша
    if key == 'esc': # Если Π½Π°ΠΆΠ°Ρ‚Π° ESC, Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
        bext.clear ()
        sys.
exit () time.sleep (0.02) # Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°

Вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ

import sys
import random
import time

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
try:
    import bext, colorama
except ImportError:
    print ('Для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ bext ΠΈ colorama.')
    sys.exit ()

class Drop:
    def __init__ (self):
        self.x = random.randint (0, width) # ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ
        self.y = -1 # ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ - Π·Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ экрана
        self.drop_type = random.randint (0, 1) # Π’ΠΈΠΏ: антикапля ΠΈΠ»ΠΈ капля
        self.timeout = random.randint (0, 3) # Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ пСрСмСщСния
        self.wait_count = random.randint (0, 3) # Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΠ°ΡƒΠ·Ρ‹
    def renew (self):
        self.__init__ ()
    def move (self):
        if drop.wait_count < drop.timeout: # Пока Ρ€Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ
            drop.wait_count += 1 # Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счётчик ΠΏΠ°ΡƒΠ·Ρ‹
            return False
        else: # Π£ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ
            drop.
wait_count = 0 # БбрасываСм счётчик ΠΏΠ°ΡƒΠ·Ρ‹ drop.y += 1 # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ каплю ΠΈΠ»ΠΈ Π°Π½Ρ‚ΠΈΠΊΠ°ΠΏΠ»ΡŽ Π½Π° шаг Π²Π½ΠΈΠ· return True def draw (self): if self.drop_type == 1: symbol = str (random.randint (1, 9)) con_print (self.x, self.y, green, symbol) self.zero_draw () # РисуСм яркий ноль else: con_print (self.x, self.y, green, ' ') def zero_draw (self): if (self.y < height): con_print (self.x, self.y+1, lgreen, '0') def is_rb_corner (x, y): if x==width and y==height: return True else: return False def con_print (x, y, color, symbol): if not is_rb_corner (x, y): bext.goto (x, y) sys.stdout.write (color) print (symbol, end='') bext.title ('Matrix') # МСняСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ консольного ΠΎΠΊΠ½Π° bext.clear () # ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ консольноС ΠΎΠΊΠ½ΠΎ bext.
hide () # Π‘ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ курсор Π² консольном ΠΎΠΊΠ½Π΅ width, height = bext.size () # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ консольного ΠΎΠΊΠ½Π° width -= 1 height -= 1 green = colorama.Fore.GREEN lgreen = colorama.Fore.LIGHTGREEN_EX # Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ массив капСль ΠΈ Π°Π½Ρ‚ΠΈΠΊΠ°ΠΏΠ΅Π»ΡŒ drops = [] for i in range (1, width*2//3): drop = Drop () drops.append (drop) while True: for drop in drops: if drop.move (): # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнта drop.draw () # ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ элСмСнт if drop.y >= height: # Достигли Π΄Π½Π° drop.renew () # ОбновляСм элСмСнт key = bext.getKey (blocking = False) # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π°ΠΆΠ°Ρ‚Π° Π»ΠΈ клавиша if key == 'esc': # Если Π½Π°ΠΆΠ°Ρ‚Π° ESC, Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ bext.clear () sys.exit () time.sleep (0.02) # Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π΅Β» свои Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ эффСкты.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ вас получится.

ЛинСйная Π°Π»Π³Π΅Π±Ρ€Π° Π½Π° Python. [Π£Ρ€ΠΎΠΊ 1]. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ список ΡƒΡ€ΠΎΠΊΠΎΠ² Π½Π° Ρ‚Π΅ΠΌΡƒ β€œΠ›ΠΈΠ½Π΅ΠΉΠ½Π°Ρ Π°Π»Π³Π΅Π±Ρ€Π° с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° Pythonβ€œ. ΠœΡ‹ постараСмся Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… понятиях Β Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ занимаСтся ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ всС это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° языкС Python.

  • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • Π’ΠΈΠ΄Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ способы ΠΈΡ… создания Π² Python
    • Π’Π΅ΠΊΡ‚ΠΎΡ€
      • Π’Π΅ΠΊΡ‚ΠΎΡ€-строка
      • Π’Π΅ΠΊΡ‚ΠΎΡ€-столбСц
    • ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°
    • Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°
    • Единичная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°
    • НулСвая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°
    • Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, записываСмый Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ числа (ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ комплСксныС). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

\(M\;=\;\begin{pmatrix}1&3&5\\7&2&4\end{pmatrix}\)

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° записываСтся Ρ‚Π°ΠΊ:

\(M=\begin{pmatrix}a_{11}&a_{12}&…&a_{1n}\\a_{21}&a_{22}&…&a_{2n}\\…&…&…&…\\a_{m1}&a_{m2}&…&a_{mn}\end{pmatrix}\)

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° состоит ΠΈΠ· i-строк ΠΈ j-столбцов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π΅ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, опрСдСляСмоС Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки ΠΈ столбца Π½Π° пСрСсСчСнии ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ располоТСн: \(a_{ij}\)- находится Π½Π° i-ΠΎΠΉ строкС ΠΈ j-ΠΌ столбцС.

Π’Π°ΠΆΠ½Ρ‹ΠΌ элСмСнтом ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ являСтся главная диагональ, Π΅Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ элСмСнты, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π½ΠΎΠΌΠ΅Ρ€Π° строк ΠΈ столбцов.

Π’ΠΈΠ΄Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ способы ΠΈΡ… создания Π² Python

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² Python – это Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, поэтому Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ созданиС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… список (Π°Π½Π³Π». list). Но с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния прСдставлСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ провСдСния вычислСний с Π½ΠΈΠΌΠΈ списки – Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт, для этих Ρ†Π΅Π»Π΅ΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Numpy, Π΅Π΅ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Π΅.

Напомним, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Numpy Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, послС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. По установкС Numpy ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠ£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Numpy” ΠΈΠ· ввСдСния. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку

import numpy as np

Если послС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π΅ Π±Ρ‹Π»ΠΎ сообщСний ΠΎΠ± ошибкС, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Numpy содСрТит большоС количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° установлСна ΠΈ импортируСтся Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Π΅Π· ошибок.

Рассмотрим, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ способы ΠΈΡ… задания Π² Python.

Π’Π΅ΠΊΡ‚ΠΎΡ€

Π’Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ столбСц ΠΈΠ»ΠΈ ΠΎΠ΄Π½Π° строка. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ свойства Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΈΡ… гСомСтричСская интСрпрСтация ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² β€œΠ“Π»Π°Π²Π΅ 2 ВСкторная алгСбра”.

Π’Π΅ΠΊΡ‚ΠΎΡ€-строка

Π’Π΅ΠΊΡ‚ΠΎΡ€-строка ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ запись.

\(v=(1\;2)\)

Π’Π°ΠΊΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π² Python ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

>>> v_hor_np = np.array([1, 2])
>>> print(v_hor_np )
[1 2]

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ всС элСмСнты Π½ΡƒΠ»ΠΈ Π»ΠΈΠ±ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Numpy.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€-строку Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 5.

>>> v_hor_zeros_v1 = np.zeros((5,))
>>> print(v_hor_zeros_v1 )
[0. 0. 0. 0. 0.]

Π’ случаС, Ссли трСбуСтся ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€-строку Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° сама являлась элСмСнтом ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ массива, это Π½ΡƒΠΆΠ½ΠΎ для возмоТности транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (см. Ρ€Π°Π·Π΄Π΅Π» β€œ1.3 ВранспонированиС матрицы”), Ρ‚ΠΎ Π΄Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ.

>>> v_hor_zeros_v2 = np.zeros((1, 5))
>>> print(v_hor_zeros_v2 )
[[0. 0. 0. 0. 0.]]

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΡƒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€-строку Π² ΠΎΠ±ΠΎΠΈΡ… ΠΈΠ· прСдставлСнных для Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°-строки Ρ„ΠΎΡ€ΠΌ.

>>> v_hor_one_v1 = np.ones((5,))
>>> print(v_hor_one_v1)
[1. 1. 1. 1. 1.]
>>> v_hor_one_v2 = np.ones((1, 5))
>>> print(v_hor_one_v2)
[[1. 1. 1. 1. 1.]]

Π’Π΅ΠΊΡ‚ΠΎΡ€-столбСц

Π’Π΅ΠΊΡ‚ΠΎΡ€-столбСц ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ запись.

\(v=\begin{pmatrix}1\\2\end{pmatrix}\)

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ столбСц ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

>>> v_vert_np = np.array([[1], [2]])
>>> print(v_vert_np)
[[1]
[2]]

Рассмотрим способы создания Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²-столбцов. ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€-столбСц.

>>> v_vert_zeros = np.zeros((5, 1))
>>> print(v_vert_zeros)
[[0.]
[0.]
[0.]
[0.]
[0.]]

Π•Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€-столбСц ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ones().

>>> v_vert_ones = np.ones((5, 1))
>>> print(v_vert_ones)
[[1.]
[1.]
[1.]
[1.]
[1.]]

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ количСство столбцов ΠΈ строк совпадаСт. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠ½ΠΈ выглядят Ρ‚Π°ΠΊ.

\(Msqr=\begin{pmatrix}a_{11}&a_{12}&…&a_{1n}\\a_{21}&a_{22}&…&a_{2n}\\…&…&…&…\\a_{n1}&a_{n2}&…&a_{nn}\end{pmatrix}\)

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

\(Msqr=\begin{pmatrix}1&2&3\\4&5&6\\7&8&9\end{pmatrix}\)

Π’ Numpy ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° array().

>>> m_sqr_arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> print(m_sqr_arr)
[[1 2 3]
[4 5 6]
[7 8 9]]

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ np.array() являСтся список Python, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

>>> m_sqr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> m_sqr_arr = np.array(m_sqr)
>>> print(m_sqr_arr)
[[1 2 3]
[4 5 6]
[7 8 9]]

Но Π² Numpy Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈ способ создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ† – это построСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° matrix с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π—Π°Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ списка.

>>> m_sqr_mx = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> print(m_sqr_mx)
[[1 2 3]
[4 5 6]
[7 8 9]]

Π’Π°ΠΊΠΆΠ΅ доступСн ΡΡ‚ΠΈΠ»ΡŒ Matlab, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами ставятся ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π° строки Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой, ΠΏΡ€ΠΈ этом Ρ‚Π°ΠΊΠΎΠ΅ описаниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ строки.

>>> m_sqr_mx = np.matrix('1 2 3; 4 5 6; 7 8 9')
>>> print(m_sqr_mx)
[[1 2 3]
[4 5 6]
[7 8 9]]

Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

ΠžΡΠΎΠ±Ρ‹ΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ являСтся диагональная – это такая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС элСмСнты, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ располоТСны Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

\(Mdiag=\begin{pmatrix}a_{11}&0&…&0\\0&a_{22}&…&0\\…&…&…&…\\0&0&…&a_{nn}\end{pmatrix}\)

Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π·Π°Π΄Π°Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния элСмСнтам Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

>>> m_diag = [[1, 0, 0], [0, 5, 0], [0, 0, 9]]
>>> m_diag_np = np.matrix(m_diag)
>>> print(m_diag_np)
[[1 0 0]
[0 5 0]
[0 0 9]]

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Numpy прСдоставляСт инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ построСниС Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π΅ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 3 3.

>>> m_sqr_mx = np.matrix('1 2 3; 4 5 6; 7 8 9')

Π˜Π·Π²Π»Π΅Ρ‡Π΅ΠΌ Π΅Π΅ Π³Π»Π°Π²Π½ΡƒΡŽ диагональ.

>>> diag = np.diag(m_sqr_mx)
>>> print(diag)
[1 5 9]

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° Π±Π°Π·Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

>>> m_diag_np = np.diag(np.diag(m_sqr_mx))
>>> print(m_diag_np)
[[1 0 0]
[0 5 0]
[0 0 9]]

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ построСниС Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ посвящСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„.

Единичная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Π•Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ элСмСнты Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Ρ€Π°Π²Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΡƒΠ»ΡŽ.

\(E=\begin{pmatrix}1&0&…&0\\0&1&…&0\\…&…&…&…\\0&0&…&1\end{pmatrix}\)

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° Π±Π°Π·Π΅ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ matrix().

>>> m_e = [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
>>> m_e_np = np.matrix(m_e)
>>> print(m_e_np)
[[1 0 0]
[0 1 0]
[0 0 1]]

Π’Π°ΠΊΠΎΠΉ способ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ для нас, для построСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Numpy Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция – eye().

>>> m_eye = np.eye(3)
>>> print(m_eye)
[[ 1. Β 0. 0.]
[ 0. Β 1. 0.]
[ 0. Β 0. 1.]]


Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСдаСтся Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ – это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 3 3. Π’ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ identity().

>>> m_idnt = np.identity(3)
>>> print(m_idnt)
[[ 1. Β 0. 0.]
[ 0. Β 1. 0.]
[ 0. Β 0. 1.]]

НулСвая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Π£ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ всС элСмСнты Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

\(Z=\begin{pmatrix}0&0&…&0\\0&0&…&0\\…&…&…&…\\0&0&…&0\end{pmatrix}\)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с использованиСм списков, ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, ΠΎΠ½ дСлаСтся ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ. Π§Ρ‚ΠΎ касаСтся Numpy, Ρ‚ΠΎ Π² составС этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ΡΡ‚ΡŒ функция zeros(), которая создаСт Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

>>> m_zeros = np.zeros((3, 3))
>>> print(m_zeros)
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]

Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ zeros() пСрСдаСтся Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… – число строк, Π²Ρ‚ΠΎΡ€ΠΎΠΉ – столбцов. Если Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ zeros() ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° число, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ построСн Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€-строка, это ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅, посвящСнном Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌ.

Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅

Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ содСрТимом ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ списки Python ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ matrix() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Numpy.

>>> m_mx = np.matrix('1 2 3; 4 5 6')
>>> print(m_mx)
[[1 2 3]
[4 5 6]]

Если ΠΆΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ содСрТимым, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΎΡ‰Π΅ всСго для Ρ‚ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ zeros(), которая создаст ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ нулями.

>>> m_var = np.zeros((2, 5))
>>> print(m_var)
[[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0.Β 0.]]

P.S.

Π’Π²ΠΎΠ΄Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ β€œΠ›ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Π΅ Π½Π° Python” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ страницС нашСго сайта. ВсС ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ собраны Π² ΠΊΠ½ΠΈΠ³Π΅ β€œΠ›ΠΈΠ½Π΅ΠΉΠ½Π°Ρ Π°Π»Π³Π΅Π±Ρ€Π° Π½Π° Python”.

Если Π²Π°ΠΌ интСрСсна Ρ‚Π΅ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Pandas.Β  Для Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с вводными ΡƒΡ€ΠΎΠΊΠ°ΠΌΠΈ. ВсС ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas собраны Π² ΠΊΠ½ΠΈΠ³Π΅ β€œPandas. Π Π°Π±ΠΎΡ‚Π° с данными”.

ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ столбца ΠΈ слоТСниС β€” НахоТдСниС максимального элСмСнта

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” это Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, состоящий ΠΈΠ· M строк ΠΈ N столбцов. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² матСматичСских вычислСниях. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π² основном Π² Π½Π°ΡƒΡ‡Π½ΠΎΠΉ области, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для быстрой Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π² Π²ΠΈΠ΄Π΅ΠΎ-ΠΈΠ³Ρ€Π΅.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ: ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, слоТСниС, транспонированиС ΠΈ Ρ‚. Π΄. На Python это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C.

Но ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла, поэтому Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для слоТных Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… вычислСний ΠΈ прСдоставляСт программисту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами.

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

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NumPy

NumPy Π½Π΅ встроСна Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python, поэтому ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Для этого Π² ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ pip. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π² консолС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install numpy

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° установлСна, Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ import. Для удобства ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ numpy ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π² np ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

import numpy as np

НиТС Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ использован ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, поэтому ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· np, Π° Π½Π΅ numpy!

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

Для создании ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция array(). Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ пСрСдаётся список. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания, ΠΌΡ‹ ΠΏΠΎΠ΄Π°Ρ‘ΠΌ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список:

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

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

a = np.array([[3, 3, 3],[2, 5, 5]], int)
print(a)

Π’ΠΎΠ³Π΄Π° Π² консоль вывСдСтся:

[[3 3 3]
 [2 5 5]]

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ссли ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ int Π½Π° str, Ρ‚ΠΎ Ρ‚ΠΈΠΏ элСмСнтов измСнился Π½Π° строковый. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² консоль NumPy автоматичСски ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π° элСмСнты Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΈΡΡŒ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π’ качСствС Ρ‚ΠΈΠΏΠΎΠ² элСмСнтов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ int, float, bool, complex, bytes, str, buffers. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ NumPy: логичСскиС, цСлочислСнныС, Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ цСлочислСнныС, вСщСствСнныС, комплСксныС. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

  • np.bool8 β€” логичСская пСрСмСнная, которая Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 Π±Π°ΠΉΡ‚ памяти.
  • np.int64 β€” Ρ†Π΅Π»ΠΎΠ΅ число, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ 8 Π±Π°ΠΉΡ‚.
  • np.uint16 β€” Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ 2 Π±Π°ΠΉΡ‚Π° Π² памяти.
  • np.float32 β€” вСщСствСнноС число, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ 4 Π±Π°ΠΉΡ‚Π° Π² памяти.
  • np.complex64 β€” комплСксноС число, состоящСС ΠΈΠ· 4 Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ вСщСствСнного числа Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части ΠΈ 4 Π±Π°ΠΉΡ‚ΠΎΠ² ΠΌΠ½ΠΈΠΌΠΎΠΉ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ shape:

size = a.shape
print(size) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ (2, 3)

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число (2) β€” количСство строк, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число (3) β€” количСство столбцов.

НулСвая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π½ΡƒΠ»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ zeros():

a_of_zeros = np.zeros((2,2))
print(a_of_zeros)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

[[0. 0.]
 [0. 0.]]

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ строки, столбца ΠΈ элСмСнта

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π½ΡƒΠΆΠ½ΠΎ просто ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΏΠΎ индСксу ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

temp = a[0]
print(temp) #Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ [3 3 3]

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ столбСц ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ просто. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ срСзы, Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта срСза ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт β€” это Π½ΠΎΠΌΠ΅Ρ€ искомого столбца. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

arr = np.array([[3,3,3],[2,5,5]], str)
temp = arr[:,2]
print(temp) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ ['3' '5']

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ столбца ΠΈ строки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ находится. НапримСр, элСмСнт Π²ΠΎ 2 строкС ΠΈ 3 столбцС β€” это 5, провСряСм (ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ нумСрация начинаСтся с 0):

arr = np.array([[3,3,3],[2,5,5]], str)
temp = arr[1][2]
print(temp) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ 5

УмноТСниС и слоТСниС

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π½ΡƒΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ всС ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты. Π’ Python для ΠΈΡ… слоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«+Β».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ слоТСния:

arr1 = np.array([[3,3,3],[2,5,5]])
arr2 = np.array([[2,4,2],[1,3,8]])
temp = arr1 + arr2
print(temp)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π°:

[[ 5  7  5]
 [ 3  8 13]]

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ количСством строк ΠΈ столбцов, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Python Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ValueError.

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† сильно отличаСтся ΠΎΡ‚ слоТСния. НС получится просто ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ согласованными, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ количСство столбцов ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ количСству строк Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² NumPy выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° dot().

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ умноТСния:

arr1 = np.array([[3,3],[2,5]])
arr2 = np.array([[2,4],[1,3]])
temp = arr1.dot(arr2)
print(temp)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этого ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

[[ 9 21]
 [ 9 23]]

Как ΠΎΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ? Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ число 21, Π΅Π³ΠΎ позиция это 1 строка ΠΈ 2 столбСц, Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ 1 строку ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π½Π° 2 столбСц Π²Ρ‚ΠΎΡ€ΠΎΠΉ. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ элСмСнты ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 1 Π½Π° 1 ΠΈ 2 Π½Π° 2, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ: [3,3] * [4,3] = 3 * 4 + 3 * 3 = 21.

Вранспонированная ΠΈ обратная

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

arr1 = np.array([[3,3],[2,5]])
temp = arr1.transpose()
print(temp)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получится ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°:

[[3 2]
 [3 5]]

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ linalg (линСйная Π°Π»Π³Π΅Π±Ρ€Π°). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ inv():

arr1 = np.array([[3,3],[2,5]])
temp = np.linalg.inv(arr1)
print(temp)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π°:

[[ 0.55555556 -0.33333333]
 [-0.22222222  0.33333333]]

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ максимального ΠΈ минимального элСмСнта

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ всСм элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² for. Π­Ρ‚ΠΎ стандартный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ программисту:

arr = np.array([[3,3],[2,5]])
min = arr[0][0]
for i in range(arr.shape[0]):
    for j in range(arr. shape[1]):
        if min > arr[i][j]:
            min = arr[i][j]
print("ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт:", min) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: 2"

NumPy позволяСт Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ amax() ΠΈ amin(). Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ саму ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

arr1 = np.array([[3,3],[2,5]])
min = np.amin(arr1)
max = np.amax(arr1)
print("ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт:", min) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: 2"
print("ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт:", max) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: 5"

Как Π²ΠΈΠ΄ΠΈΠΌ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° чистом Python ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NumPy ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

На Python ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ программистов, Π±Ρ‹Π»Π° создана Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy. Она позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ слоТныС матСматичСскиС вычислСния Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅Π· ошибок, избавляя программиста ΠΎΡ‚ нСобходимости ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄.

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Python — pythobyte.com

Автор ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°: Pankaj Kumar.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Python Π² Ρ„ΠΎΡ€ΠΌΠ΅ 2-D списка ΠΈΠ»ΠΈ 2-D массив ΠžΡ‚ΠΊΠ°Π· Для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° Python Matrix Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python Numpy.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python Π²Π°ΠΆΠ½ΠΎ Π² области статистики, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚. Π”.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана с использованиСм ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ списки
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Arange ()
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Matrix () ΠΌΠ΅Ρ‚ΠΎΠ΄

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм списков

numpy.array () Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для создания массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ списки Π² качСствС Π²Π²ΠΎΠ΄Π° ΠΊ Π½Π΅ΠΌΡƒ ΠžΡ‚ΠΊΠ°Π·

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

import numpy
input_arr = numpy. array([[ 10, 20, 30],[ 40, 50, 60]])
print(input_arr)

Π’Ρ‹Ρ…ΠΎΠ΄:

[[10 20 30]
 [40 50 60]]

Как Π²ΠΈΠ΄Π½ΠΎ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹Π²ΠΎΠ΄ прСдставляСт собой 2-D ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ списка.

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«Numpy.Arange ()Β»

numpy.arange () Ѐункция вмСстС со Π²Ρ…ΠΎΠ΄Π°ΠΌΠΈ списка ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python.

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

import numpy
print(numpy. array([numpy.arange(10,15), numpy.arange(15,20)]))
 

Π’Ρ‹Ρ…ΠΎΠ΄:

[[10 11 12 13 14]
 [15 16 17 18 19]]

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«NUMPY.MATRIX ()Β»

numpy.matrix () Ѐункция позволяСт Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python.

Бинтаксис:

numpy.matrix(input,dtype)
  • Π’Ρ…ΠΎΠ΄: Π²Π²ΠΎΠ΄ элСмСнтов для формирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.
  • dtype: Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π°.

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

import numpy as p
matA = p.matrix([[10, 20], [30, 40]])  
print('MatrixA:\n', matA)
matB = p.matrix('[10,20;30,40]', dtype=p.int32)  # Setting the data-type to int
print('\nMatrixB:\n', matB)

Π’Ρ‹Ρ…ΠΎΠ΄:

MatrixA:
 [[10 20]
 [30 40]]
MatrixB:
 [[10 20]
 [30 40]]

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

Π Π°Π±ΠΎΡ‚Π° добавлСния Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами:

  • Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€˜+’

1.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

Π’ этом Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΌΡ‹ Π² основном ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π²Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ слоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ для ΠΏΠ΅Ρ‚Π»Π΅ΠΉ (ВрСвСрс Ρ‡Π΅Ρ€Π΅Π· элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹) ΠΈ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«+Β» ΠžΡ‚ΠΊΠ°Π·

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

import numpy as p
ar1 = p.matrix([[11, 22], [33, 44]])  
ar2 = p.matrix([[55, 66], [77, 88]])  
res = p.matrix(p.zeros((2,2)))  
print('Matrix ar1 :\n', ar1)
print('\nMatrix ar2 :\n', ar2)
# traditional code
for x in range(ar1.shape[1]):
    for y in range(ar2.shape[0]):
        res[x, y] = ar1[x, y] + ar2[x, y]
print('\nResult :\n', res)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : Matrix.shape Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Π’Ρ‹Ρ…ΠΎΠ΄:

Matrix ar1 :
 [[11 22]
 [33 44]]
Matrix ar2 :
 [[55 66]
 [77 88]]
Result :
 [[  66.   88.]
 [ 110.  132.]]

2. ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° β€˜+’

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ обСспСчиваСт Π»ΡƒΡ‡ΡˆΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ LOC (строки ΠΊΠΎΠ΄Π°) ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄.

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

import numpy as p
ar1 = p. matrix([[11, 22], [33, 44]])  
ar2 = p.matrix([[55, 66], [77, 88]])  
res = p.matrix(p.zeros((2,2)))  
print('Matrix ar1 :\n', ar1)
print('\nMatrix ar2 :\n', ar2)
res = ar1 + ar2 # using '+' operator
print('\nResult :\n', res)

Π’Ρ‹Ρ…ΠΎΠ΄:

Matrix ar1 :
 [[11 22]
 [33 44]]
Matrix ar2 :
 [[55 66]
 [77 88]]
Result :
 [[ 66  88]
 [110 132]]

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Python

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСна с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

  • Бкалярный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚
  • ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚

Бкалярный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚

Π’ скалярном ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅, Бкаляр/постоянноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ умноТаСтся Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

β€˜*’ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для умноТСния скалярного значСния с элСмСнтами Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

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

import numpy as p
matA = p.matrix([[11, 22], [33, 44]])  
print("Matrix A:\n", matA)
print("Scalar Product of Matrix A:\n", matA * 10)

Π’Ρ‹Ρ…ΠΎΠ΄:

Matrix A:
 [[11 22]
 [33 44]]
Scalar Product of Matrix A:
 [[110 220]
 [330 440]]

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«*Β» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для скалярного умноТСния ΠžΡ‚ΠΊΠ°Π· Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Matrix, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ numpy. dot () функция.

numpy.dot () Ѐункция Π±Π΅Ρ€Π΅Ρ‚ Numpy массивы Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ЗначСния ΠΈ выполняСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² соотвСтствии с основными ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

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

import numpy as p
matA = p.matrix([[11, 22], [33, 44]])  
matB = p.matrix([[2,2], [2,2]])
print("Matrix A:\n", matA)
print("Matrix B:\n", matB)
print("Dot Product of Matrix A and Matrix B:\n", p.dot(matA, matB))

Π’Ρ‹Ρ…ΠΎΠ΄:

Matrix A:
 [[11 22]
 [33 44]]
Matrix B:
 [[2 2]
 [2 2]]
Dot Product of Matrix A and Matrix B:
 [[ 66  66]
 [154 154]]

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python

β€˜-β€˜ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния вычитания Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Python.

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

import numpy as p
matA = p.matrix([[11, 22], [33, 44]])  
matB = p.matrix([[2,2], [2,2]])
print("Matrix A:\n", matA)
print("Matrix B:\n", matB)
print("Subtraction of Matrix A and Matrix B:\n",(matA - matB))
 

Π’Ρ‹Ρ…ΠΎΠ΄:

Matrix A:
 [[11 22]
 [33 44]]
Matrix B:
 [[2 2]
 [2 2]]
Subtraction of Matrix A and Matrix B:
 [[ 9 20]
 [31 42]]

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python

БкалярноС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π½Π° элСмСнтах ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ β€˜/’ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠžΡ‚ΠΊΠ°Π·

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«/Β» раздСляСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ со скалярным/постоянным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

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

import numpy as p
matB = p.matrix([[2,2], [2,2]])
print("Matrix B:\n", matB)
print("Matrix B after Scalar Division operation:\n",(matB/2))
 

Π’Ρ‹Ρ…ΠΎΠ΄:

Matrix B:
 [[2 2]
 [2 2]]
Matrix B after Scalar Division operation:
 [[ 1.  1.]
 [ 1.  1.]]

Π’Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Python

Вранспоминация ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² основном Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π°Π΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π°ΠΌΠΈ I. e. Π­Ρ‚ΠΎ обмСняСт строки ΠΈ столбцы Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Ряды становятся ΠΊΠΎΠ»ΠΎΠ½Π½Π°ΠΌΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

НапримСр: Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ A с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ 3 Γ— 2 I.e 3 ряда ΠΈ 2 столбцами. ПослС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ транспонирования Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A Π±ΡƒΠ΄ΡƒΡ‚ 2 Γ— 3 I.e 2 ряда ΠΈ 3 столбца.

Matrix.t Π’ основном выполняСт Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ·ΡŒΡŽ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Новая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ транспонирования.

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

import numpy
 
matA = numpy.array([numpy.arange(10,15), numpy.arange(15,20)])
print("Original Matrix A:\n")
print(matA)
print('\nDimensions of the original MatrixA: ',matA.shape)
print("\nTranspose of Matrix A:\n ")
res = matA. T
print(res)
print('\nDimensions of the Matrix A after performing the Transpose Operation:  ',res.shape)

Π’Ρ‹Ρ…ΠΎΠ΄:

Original Matrix A:
[[10 11 12 13 14]
 [15 16 17 18 19]]
Dimensions of the original MatrixA: (2, 5)
Transpose of Matrix A:
 
[[10 15]
 [11 16]
 [12 17]
 [13 18]
 [14 19]]
Dimensions of the Matrix A after performing the Transpose Operation: (5, 2)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° я создал ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² 2 Γ— 5 I.E. 2 ряда ΠΈ 5 столбцов.

ПослС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ транспонирования Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ 5 Γ— 2 I.e. 5 рядов ΠΈ 2 столбцами.

ЭкспонСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python

Π¨ΠΊΠ°Ρ„Ρ‡ΠΈΠΊ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ рассчитываСтся элСмСнт-ΠΌΡƒΠ΄Ρ€Ρ‹ΠΉ I. E. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта рассчитываСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ элСмСнта ΠΊ мощности Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ скалярного/постоянного значСния.

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

import numpy
 
matA = numpy.array([numpy.arange(0,2), numpy.arange(2,4)])
print("Original Matrix A:\n")
print(matA)
print("Exponent of the input matrix:\n")
print(matA ** 2) # finding the exponent of every element of the matrix

Π’Ρ‹Ρ…ΠΎΠ΄:

Original Matrix A:
[[0 1]
 [2 3]]
Exponent of the input matrix:
[[0 1]
 [4 9]]

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ экспонант ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, подняв Π΅Π³ΠΎ Π΄ΠΎ мощности 2.

Π Π°Π±ΠΎΡ‚Π° умноТСния Matrix с использованиСм Numpy Methods

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для размноТСния Numpy Matrix Matrix:

  • ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° умноТСния ()
  • ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Matmul ()
  • ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° DOT () – ΡƒΠΆΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

Бпособ 1: ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° умноТСния ()

numpy.multiply () ΠœΠ΅Ρ‚ΠΎΠ΄ выполняСт Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ элСмСнта Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

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

import numpy as p
matA = p.matrix([[10, 20], [30, 40]])  
print('MatrixA:\n', matA)
matB = p.matrix('[10,20;30,40]', dtype=p.int32)  # Setting the data-type to int
print('\nMatrixB:\n', matB)
print("Matrix multplication using numpy. matrix() method")
res = p.multiply(matA,matB)
print(res)

Π’Ρ‹Ρ…ΠΎΠ΄:

MatrixA:
 [[10 20]
 [30 40]]
MatrixB:
 [[10 20]
 [30 40]]
Matrix multplication using numpy.matrix() method
[[ 100  400]
 [ 900 1600]]

Бпособ 2: ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Matmul ()

numpy.matmul () Бпособ выполняСт ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ….

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

import numpy as p
matA = p. matrix([[10, 20], [30, 40]])  
print('MatrixA:\n', matA)
matB = p.matrix('[10,20;30,40]', dtype=p.int32)  # Setting the data-type to int
print('\nMatrixB:\n', matB)
print("Matrix multplication using numpy.matmul() method")
res = p.matmul(matA,matB)
print(res)

Π’Ρ‹Ρ…ΠΎΠ΄:

MatrixA:
 [[10 20]
 [30 40]]
MatrixB:
 [[10 20]
 [30 40]]
Matrix multplication using numpy.matmul() method
[[ 700 1000]
 [1500 2200]]

Π― Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всСм читатСлям ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½ΠΈΠΆΠ΅ ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ умноТСния Numpy Matrix: ОбновлСниС Numpy Matrix

Tumpy Matrix транспонимСнт

numpy.transose () Ѐункция выполняСт транспонированиС Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

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

import numpy
 
matA = numpy.array([numpy.arange(10,15), numpy.arange(15,20)])
print("Original Matrix A:\n")
print(matA)
print('\nDimensions of the original MatrixA: ',matA.shape)
print("\nTranspose of Matrix A:\n ")
res = matA.transpose()
print(res)
print('\nDimensions of the Matrix A after performing the Transpose Operation:  ',res.shape)

Π’Ρ‹Ρ…ΠΎΠ΄:

Original Matrix A:
[[10 11 12 13 14]
 [15 16 17 18 19]]
Dimensions of the original MatrixA: (2, 5)
Transpose of Matrix A:
 
[[10 15]
 [11 16]
 [12 17]
 [13 18]
 [14 19]]
Dimensions of the Matrix A after performing the Transpose Operation: (5, 2)

РСкомСндуСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ: Numpy Matrix Transpose () Ѐункция

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ поняли ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Python, Π° Ρ‚Π°ΠΊΠΆΠ΅ посмотрСли Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Numpy Matrix.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

  • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python
  • Numpy докумСнтация
  • Python Numpy

100 NumPy Π·Π°Π΄Π°Ρ‡ | Python 3 для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

100 (Π½Π° самом Π΄Π΅Π»Π΅, ΠΏΠΎΠΊΠ° мСньшС) Π·Π°Π΄Π°Ρ‡ для NumPy, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ английского Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° https://github.com/rougier/numpy-100

  • Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ NumPy ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ np

    import numpy as np
  • ΠΠ°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ

    print(np.__version__)
    np.show_config()
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ (ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив) Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 10, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ нулями

    Z = np.zeros(10)
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 10, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ

    Z = np.ones(10)
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 10, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ числом 2.5

    Z = np.full(10, 2.5)
    print(Z)
  • Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.add ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки?

    python3 -c "import numpy; numpy.info(numpy.add)"
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 10, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ нулями, Π½ΠΎ пятый элСмСнт Ρ€Π°Π²Π΅Π½ 1

    Z = np. zeros(10)
    Z[4] = 1
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ со значСниями ΠΎΡ‚ 10 Π΄ΠΎ 49

    Z = np.arange(10,50)
    print(Z)
  • Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ становится послСдним)

    Z = np.arange(50)
    Z = Z[::-1]
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив) 3×3 со значСниями ΠΎΡ‚ 0 Π΄ΠΎ 8

    Z = np.arange(9).reshape(3,3)
    print(Z)
  • Найти индСксы Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… элСмСнтов Π² [1,2,0,0,4,0]

    nz = np.nonzero([1,2,0,0,4,0])
    print(nz)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 3×3 Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ

    Z = np.eye(3)
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив 3x3x3 со случайными значСниями

    Z = np.random.random((3,3,3))
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив 10×10 со случайными значСниями, Π½Π°ΠΉΡ‚ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ максимум

    Z = np.random.random((10,10))
    Zmin, Zmax = Z.min(), Z.max()
    print(Zmin, Zmax)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ случайный Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 30 ΠΈ Π½Π°ΠΉΡ‚ΠΈ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСх элСмСнтов

    Z = np.random.random(30)
    m = Z.mean()
    print(m)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с 0 Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΠΈ 1 Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ…

    Z = np. ones((10,10))
    Z[1:-1,1:-1] = 0
  • Π’Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

    0 * np.nan
    np.nan == np.nan
    np.inf > np.nan
    np.nan - np.nan
    0.3 == 3 * 0.1
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 5×5 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с 1,2,3,4 ΠΏΠΎΠ΄ диагональю

    Z = np.diag(np.arange(1, 5), k=-1)
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 8×8 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠΌ порядкС

    Z = np.zeros((8,8), dtype=int)
    Z[1::2,::2] = 1
    Z[::2,1::2] = 1
    print(Z)
  • Π”Π°Π½ массив размСрности (6,7,8). Каков индСкс (x,y,z) сотого элСмСнта?

    print(np.unravel_index(100, (6,7,8)))
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 8×8 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠΌ порядкС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ tile

    Z = np.tile(np.array([[0,1],[1,0]]), (4,4))
    print(Z)
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ 5×3 ΠΈ 3×2

    Z = np.dot(np.ones((5,3)), np.ones((3,2)))
    print(Z)
  • Π”Π°Π½ массив, ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°ΠΊ Ρƒ элСмСнтов, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ 3 ΠΈ 8

    Z = np.arange(11)
    Z[(3 < Z) & (Z <= 8)] *= -1
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ 5×5 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ со значСниями Π² строках ΠΎΡ‚ 0 Π΄ΠΎ 4

    Z = np. zeros((5,5))
    Z += np.arange(5)
    print(Z)
  • Π•ΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ массив

    def generate():
        for x in xrange(10):
            yield x
    Z = np.fromiter(generate(),dtype=float,count=-1)
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 10 со значСниями ΠΎΡ‚ 0 Π΄ΠΎ 1, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½ΠΈ Ρ‚ΠΎ, Π½ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅

    Z = np.linspace(0,1,12)[1:-1]
    print(Z)
  • ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€

    Z = np.random.random(10)
    Z.sort()
    print(Z)
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ Π»ΠΈ 2 numpy массива

    A = np.random.randint(0,2,5)
    B = np.random.randint(0,2,5)
    equal = np.allclose(A,B)
    print(equal)
  • Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ массив нСизмСняСмым

    Z = np.zeros(10)
    Z.flags.writeable = False
    Z[0] = 1
  • Π”Π°Π½ массив 10×2 (Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚), ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»ΡΡ€Π½ΡƒΡŽ

    Z = np.random.random((10,2))
    X,Y = Z[:,0], Z[:,1]
    R = np.hypot(X, Y)
    T = np.arctan2(Y,X)
    print(R)
    print(T)
  • Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт Π½Π° ноль

    Z = np. random.random(10)
    Z[Z.argmax()] = 0
    print(Z)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ структурированный массив с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ x, y Π½Π° сСткС Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ [0,1]x[0,1]

    Z = np.zeros((10,10), [('x',float),('y',float)])
    Z['x'], Z['y'] = np.meshgrid(np.linspace(0,1,10),
                                 np.linspace(0,1,10))
    print(Z)
  • Из Π΄Π²ΡƒΡ… массивов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Коши C (Cij = 1/(xi — yj))

    X = np.arange(8)
    Y = X + 0.5
    C = 1.0 / np.subtract.outer(X, Y)
    print(np.linalg.det(C))
  • Найти минимальноС ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ числовым Ρ‚ΠΈΠΏΠΎΠΌ numpy

    for dtype in [np.int8, np.int32, np.int64]:
       print(np.iinfo(dtype).min)
       print(np.iinfo(dtype).max)
    for dtype in [np.float32, np.float64]:
       print(np.finfo(dtype).min)
       print(np.finfo(dtype).max)
       print(np.finfo(dtype).eps)
  • ΠΠ°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ всС значСния Π² массивС

    np.set_printoptions(threshold=np.nan)
    Z = np.zeros((25,25))
    print(Z)
  • Найти блиТайшСС ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ число Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ массивС

    Z = np. arange(100)
    v = np.random.uniform(0,100)
    index = (np.abs(Z-v)).argmin()
    print(Z[index])
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ структурированный массив, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ (x,y) ΠΈ Ρ†Π²Π΅Ρ‚ (r,g,b)

     Z = np.zeros(10, [ ('position', [ ('x', float, 1),
                                       ('y', float, 1)]),
                        ('color',    [ ('r', float, 1),
                                       ('g', float, 1),
                                       ('b', float, 1)])])
    print(Z)
  • Π”Π°Π½ массив (100,2) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Π½Π°ΠΉΡ‚ΠΈ расстояниС ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ

    import scipy.spatial
    Z = np.random.random((10,2))
    D = scipy.spatial.distance.cdist(Z,Z)
    print(D)
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΈΠ· float Π² int

    Z = np.arange(10, dtype=np.int32)
    Z = Z.astype(np.float32, copy=False)
  • Π”Π°Π½ Ρ„Π°ΠΉΠ»:

    1,2,3,4,5
    6,,,7,8
    ,,9,10,11
    

    Как ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ?

    Z = np.genfromtxt("missing.dat", delimiter=",")
  • Каков эквивалСнт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ enumerate для numpy массивов?

    Z = np. arange(9).reshape(3,3)
    for index, value in np.ndenumerate(Z):
        print(index, value)
    for index in np.ndindex(Z.shape):
        print(index, Z[index])
  • Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 2D массив с распрСдСлСниСм Гаусса

    X, Y = np.meshgrid(np.linspace(-1,1,10), np.linspace(-1,1,10))
    D = np.hypot(X, Y)
    sigma, mu = 1.0, 0.0
    G = np.exp(-((D - mu) ** 2 / (2.0 * sigma ** 2)))
    print(G)
  • Π‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ p элСмСнтов Π² 2D массив

    n = 10
    p = 3
    Z = np.zeros((n,n))
    np.put(Z, np.random.choice(range(n*n), p, replace=False), 1)
  • ΠžΡ‚Π½ΡΡ‚ΡŒ срСднСС ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

    X = np.random.rand(5, 10)
    Y = X - X.mean(axis=1, keepdims=True)
  • ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΏΠΎ n-ΠΎΠΌΡƒ столбцу

    Z = np.random.randint(0,10,(3,3))
    n = 1  # НумСрация с нуля
    print(Z)
    print(Z[Z[:,n].argsort()])
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² 2D массивС Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ столбцы

    Z = np.random.randint(0,3,(3,10))
    print((~Z.any(axis=0)).any())
  • Π”Π°Π½ массив, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 1 ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту с индСксом, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ массивС (остороТно с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π°ΠΌΠΈ)

    Z = np. ones(10)
    I = np.random.randint(0,len(Z),20)
    Z += np.bincount(I, minlength=len(Z))
    print(Z)
  • Π”Π°Π½ массив (w,h,3) (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°) dtype=ubyte, ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ²

    w,h = 16,16
    I = np.random.randint(0, 2, (h,w,3)).astype(np.ubyte)
    F = I[...,0] * 256 * 256 + I[...,1] * 256 + I[...,2]
    n = len(np.unique(F))
    print(np.unique(I))
  • Π”Π°Π½ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму ΠΏΠΎ послСдним Π΄Π²ΡƒΠΌ осям

    A = np.random.randint(0,10, (3,4,3,4))
    sum = A.reshape(A.shape[:-2] + (-1,)).sum(axis=-1)
    print(sum)
  • Найти Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

    # Slow version
    np.diag(np.dot(A, B))
    # Fast version
    np.sum(A * B.T, axis=1)
    # Faster version
    np.einsum("ij,ji->i", A, B).
  • Π”Π°Π½ Π²Π΅ΠΊΡ‚ΠΎΡ€ [1, 2, 3, 4, 5], ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ с трСмя нулями ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ

    Z = np.array([1,2,3,4,5])
    nz = 3
    Z0 = np.zeros(len(Z) + (len(Z)-1)*(nz))
    Z0[::nz+1] = Z
    print(Z0)
  • ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ 2 строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

    A = np. arange(25).reshape(5,5)
    A[[0,1]] = A[[1,0]]
    print(A)
  • Рассмотрим Π½Π°Π±ΠΎΡ€ ΠΈΠ· 10 Ρ‚Ρ€ΠΎΠ΅ΠΊ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… 10 Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² (с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ), Π½Π°ΠΉΡ‚ΠΈ мноТСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΎΠ², ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… всС Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ

    faces = np.random.randint(0,100,(10,3))
    F = np.roll(faces.repeat(2,axis=1),-1,axis=1)
    F = F.reshape(len(F)*3,2)
    F = np.sort(F,axis=1)
    G = F.view( dtype=[('p0',F.dtype),('p1',F.dtype)] )
    G = np.unique(G)
    print(G)
  • Π”Π°Π½ массив C; ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив A, Ρ‡Ρ‚ΠΎ np.bincount(A) == C

    C = np.bincount([1,1,2,3,4,4,6])
    A = np.repeat(np.arange(len(C)), C)
    print(A)
  • ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ срСднСС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ

    def moving_average(a, n=3):
        ret = np.cumsum(a, dtype=float)
        ret[n:] = ret[n:] - ret[:-n]
        return ret[n - 1:] / n
    print(moving_average(np.arange(20), 3))
  • Π”Π°Π½ Π²Π΅ΠΊΡ‚ΠΎΡ€ Z, ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, пСрвая строка ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ (Z[0],Z[1],Z[2]), каТдая ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ сдвинута Π½Π° 1 (послСдняя (Z[-3],Z[-2],Z[-1]))

    from numpy. lib import stride_tricks
    def rolling(a, window):
        shape = (a.size - window + 1, window)
        strides = (a.itemsize, a.itemsize)
        return stride_tricks.as_strided(a, shape=shape, strides=strides)
    Z = rolling(np.arange(10), 3)
    print(Z)
  • Π˜Π½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°ΠΊ Ρƒ числового массива Π±Π΅Π· создания Π½ΠΎΠ²ΠΎΠ³ΠΎ

    Z = np.random.randint(0,2,100)
    np.logical_not(arr, out=arr)
    Z = np.random.uniform(-1.0,1.0,100)
    np.negative(arr, out=arr)
  • Рассмотрим 2 Π½Π°Π±ΠΎΡ€Π° Ρ‚ΠΎΡ‡Π΅ΠΊ P0, P1 описания Π»ΠΈΠ½ΠΈΠΈ (2D) ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ Ρ€, ΠΊΠ°ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ расстояниС ΠΎΡ‚ Ρ€ Π΄ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ i (P0[i],P1[i])

    def distance(P0, P1, p):
        T = P1 - P0
        L = (T**2).sum(axis=1)
        U = -((P0[:,0] - p[...,0]) * T[:,0] + (P0[:,1] - p[...,1]) * T[:,1]) / L
        U = U.reshape(len(U),1)
        D = P0 + U * T - p
        return np.sqrt((D**2).sum(axis=1))
    P0 = np.random.uniform(-10,10,(10,2))
    P1 = np.random.uniform(-10,10,(10,2))
    p  = np.random.uniform(-10,10,( 1,2))
    print(distance(P0, P1, p))
  • Π”Π°Π½ массив. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ массива фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ элСмСнтС (Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ fill Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ)

    Z = np.random.randint(0,10, (10,10))
    shape = (5,5)
    fill  = 0
    position = (1,1)
    R = np.ones(shape, dtype=Z.dtype)*fill
    P  = np.array(list(position)).astype(int)
    Rs = np.array(list(R.shape)).astype(int)
    Zs = np.array(list(Z.shape)).astype(int)
    R_start = np.zeros((len(shape),)).astype(int)
    R_stop  = np.array(list(shape)).astype(int)
    Z_start = (P - Rs//2)
    Z_stop  = (P + Rs//2)+Rs%2
    R_start = (R_start - np.minimum(Z_start, 0)).tolist()
    Z_start = (np.maximum(Z_start, 0)).tolist()
    R_stop = np.maximum(R_start, (R_stop - np.maximum(Z_stop-Zs,0))).tolist()
    Z_stop = (np.minimum(Z_stop,Zs)).tolist()
    r = [slice(start,stop) for start,stop in zip(R_start,R_stop)]
    z = [slice(start,stop) for start,stop in zip(Z_start,Z_stop)]
    R[r] = Z[z]
    print(Z)
    print(R)
  • ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π½Π³ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Z = np.random.uniform(0,1,(10,10))
    rank = np.linalg.matrix_rank(Z)
  • Найти Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² массивС

    Z = np. random.randint(0,10,50)
    print(np.bincount(Z).argmax())
  • Π˜Π·Π²Π»Π΅Ρ‡ΡŒ всС смСТныС 3×3 Π±Π»ΠΎΠΊΠΈ ΠΈΠ· 10×10 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Z = np.random.randint(0,5,(10,10))
    n = 3
    i = 1 + (Z.shape[0] - n)
    j = 1 + (Z.shape[1] - n)
    C = stride_tricks.as_strided(Z, shape=(i, j, n, n), strides=Z.strides + Z.strides)
    print(C)
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ подкласс симмСтричных 2D массивов (Z[i,j] == Z[j,i])

    # Note: only works for 2d array and value setting using indices
    class Symetric(np.ndarray):
        def __setitem__(self, (i,j), value):
            super(Symetric, self).__setitem__((i,j), value)
            super(Symetric, self).__setitem__((j,i), value)
    def symetric(Z):
        return np.asarray(Z + Z.T - np.diag(Z.diagonal())).view(Symetric)
    S = symetric(np.random.randint(0,10,(5,5)))
    S[2,3] = 42
    print(S)
  • Рассмотрим мноТСство ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (n,n) ΠΈ мноТСство ΠΈΠ· p Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² (n,1). ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму p ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ (n,1))

    p, n = 10, 20
    M = np.ones((p,n,n))
    V = np. ones((p,n,1))
    S = np.tensordot(M, V, axes=[[0, 2], [0, 1]])
    print(S)
    # It works, because:
    # M is (p,n,n)
    # V is (p,n,1)
    # Thus, summing over the paired axes 0 and 0 (of M and V independently),
    # and 2 and 1, to remain with a (n,1) vector.
  • Π”Π°Π½ массив 16×16, ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму ΠΏΠΎ Π±Π»ΠΎΠΊΠ°ΠΌ 4×4

    Z = np.ones((16,16))
    k = 4
    S = np.add.reduceat(np.add.reduceat(Z, np.arange(0, Z.shape[0], k), axis=0),
                                           np.arange(0, Z.shape[1], k), axis=1)
  • ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ «ΠΆΠΈΠ·Π½ΡŒ»

    def iterate(Z):
        # Count neighbours
        N = (Z[0:-2,0:-2] + Z[0:-2,1:-1] + Z[0:-2,2:] +
             Z[1:-1,0:-2]                + Z[1:-1,2:] +
             Z[2:  ,0:-2] + Z[2:  ,1:-1] + Z[2:  ,2:])
        # Apply rules
        birth = (N == 3) & (Z[1:-1,1:-1]==0)
        survive = ((N == 2) | (N == 3)) & (Z[1:-1,1:-1] == 1)
        Z[...] = 0
        Z[1:-1,1:-1][birth | survive] = 1
        return Z
    Z = np.random.randint(0,2,(50,50))
    for i in range(100):
        print(Z)
        Z = iterate(Z)
  • Найти n Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС

    Z = np. arange(10000)
    np.random.shuffle(Z)
    n = 5
    print (Z[np.argpartition(-Z,n)[:n]])
  • ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ прямоС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ массивов (всС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом)

    def cartesian(arrays):
        arrays = [np.asarray(a) for a in arrays]
        shape = map(len, arrays)
        ix = np.indices(shape, dtype=int)
        ix = ix.reshape(len(arrays), -1).T
        for n, arr in enumerate(arrays):
            ix[:, n] = arrays[n][ix[:, n]]
        return ix
    print(cartesian(([1, 2, 3], [4, 5], [6, 7])))
  • Π”Π°Π½Ρ‹ 2 массива A (8×3) ΠΈ B (2×2). Найти строки Π² A, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат элСмСнты ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² B, нСзависимо ΠΎΡ‚ порядка элСмСнтов Π² B

    A = np.random.randint(0,5,(8,3))
    B = np.random.randint(0,5,(2,2))
    C = (A[..., np.newaxis, np.newaxis] == B)
    rows = (C.sum(axis=(1,2,3)) >= B.shape[1]).nonzero()[0]
    print(rows)
  • Π”Π°Π½Π° 10×3 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π½Π°ΠΉΡ‚ΠΈ строки ΠΈΠ· Π½Π΅Ρ€Π°Π²Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [2,2,3])

    Z = np.random.randint(0,5,(10,3))
    E = np.logical_and.reduce(Z[:,1:] == Z[:,:-1], axis=1)
    U = Z[~E]
    print(Z)
    print(U)
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ чисСл Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… прСдставлСний

    I = np. array([0, 1, 2, 3, 15, 16, 32, 64, 128], dtype=np.uint8)
    print(np.unpackbits(I[:, np.newaxis], axis=1))
  • Π”Π°Π½ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Найти всС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ строки

    Z = np.random.randint(0, 2, (6,3))
    T = np.ascontiguousarray(Z).view(np.dtype((np.void, Z.dtype.itemsize * Z.shape[1])))
    _, idx = np.unique(T, return_index=True)
    uZ = Z[idx]
    print(uZ)
  • Π”Π°Π½Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ A ΠΈ B, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ einsum эквивалСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ inner, outer, sum ΠΈ mul

    # Make sure to read: http://ajcr.net/Basic-guide-to-einsum/
    np.einsum('i->', A)       # np.sum(A)
    np.einsum('i,i->i', A, B) # A * B
    np.einsum('i,i', A, B)    # np.inner(A, B)
    np.einsum('i,j', A, B)    # np.outer(A, B)
  • #3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ автозаполнСния, создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ числовых Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ²

    • NumPy
    • Установка ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ знакомство
    • ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массивов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array()
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ автозаполнСния, создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ числовых Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ²
    • Бвойства ΠΈ прСдставлСния массивов, созданиС ΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ
    • ИзмСнСниС Ρ„ΠΎΡ€ΠΌΡ‹ массивов, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ осСй
    • ОбъСдинСниС ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массивов
    • Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ, срСзы, ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массивов
    • Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ массивами
    • Π‘ΡƒΠ»Π΅Π²Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, значСния inf ΠΈ nan
    • Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², элСмСнты Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹
    • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° (unique) ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ
    • ВранслированиС массивов
    • ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

      Наш канал

    Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π½Π° Π²ΠΈΠ΄Π΅ΠΎ

    На ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ занятии ΠΌΡ‹ познакомились с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array для создания ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… массивов Π½Π° основС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ списка ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°. Однако, часто Π² ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с Ρ‚ΠΈΠΏΠΎΠ²Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, состоящих ΠΈΠ· Π½ΡƒΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†, ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ диагональной ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ всС это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ array, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ списков, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

    np.array( [0]*10 )Β  # массив ΠΈΠ· 10 Π½ΡƒΠ»Π΅ΠΉ
    np.array( [1]*15 )Β  # массив ΠΈΠ· 15 Π΅Π΄ΠΈΠ½ΠΈΡ†
    np.array( [x for x in range(10)] ) # массив ΠΈΠ· чисСл ΠΎΡ‚ 0Β  Π΄ΠΎ 9

    Но Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ быстрыС способы (ΠΏΠΎ скорости выполнСния) создания ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… массивов. Для этого Π² NumPyΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ сСйчас рассмотрим.

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ автозаполнСния элСмСнтов массива

    НазваниС

    ОписаниС

    empty(shape, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π±Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

    eye(N, M=None, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ NxMс Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами (ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ).

    identity(n, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ массив Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ nxn с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ элСмСнтами ΠΏΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ (ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ).

    ones(shape, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ‚ΠΈΠΏΠ°, состоящСго ΠΈΠ· всСх Π΅Π΄ΠΈΠ½ΠΈΡ†.

    zeros(shape, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ‚ΠΈΠΏΠ°, состоящСго ΠΈΠ· всСх Π½ΡƒΠ»Π΅ΠΉ.

    full(shape, value, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ‚ΠΈΠΏΠ° со значСниями value.

    Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для создания массивов с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ значСниями. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… достаточно просто. НапримСр, Ρ‚Π°ΠΊ:

    np.empty(10) # созданиС ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ числами
    np.empty(10, dtype='int16')
    np.empty((3, 2), dtype='float32') # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 3x2 стипомfloat32

    Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ eye ΠΈ identity размСрности ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

    np.eye(4)Β Β Β  # ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 4Ρ…4
    np.eye(4, 2)Β Β Β Β Β Β Β Β  # ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 4x2
    np.identity(5) # ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 5x5

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ones, zeros ΠΈ full Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ empty:

    np.zeros( (2, 3, 4) ) # нулСвая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 2x3x4
    np.ones( [4, 3], dtype='int8') # ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 4x3 ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ int8
    np.full((3, 2), -1) # ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 3x2, состоящая ΠΈΠ· -1

    ВсС эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС, Ρ‡Π΅ΠΌ функция array с Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ списков языка Python. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями.

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° основС списков ΠΈΠ»ΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ.

    НазваниС

    ОписаниС

    mat(object, …)

    ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ object ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ object ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строкой, списком ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ.

    diag(list, …)

    Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° основС списка ΠΈΠ»ΠΈ массива NumPy. Π’ послСдних вСрсиях Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию массива (Π° Π½Π΅ Π΅Π³ΠΎ прСдставлСниС).

    diagflat(list, …)

    Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈΠ· списка list, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сначала сТимаСт Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ оси (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список ΠΈΠ»ΠΈ массив).

    tri(N, M=None, …)

    Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив NxM с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈ Π½ΠΈΠΆΠ΅ Π΅Π΅.

    tril(list, …)

    ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список ΠΈΠ»ΠΈ массив list Π² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ элСмСнтами Π²Ρ‹ΡˆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

    triu(list, …)

    ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список ΠΈΠ»ΠΈ массив list Π² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ элСмСнтами Π½ΠΈΠΆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

    vander(list, N=None, …)

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π’Π°Π½Π΄Π΅Ρ€ΠΌΠΎΠ½Π΄Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ списка ΠΈΠ»ΠΈ массива list. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ N опрСдСляСт число столбцов (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ формируСтся квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°).

    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

    np.mat('1 2 3 4') # создаСт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 1x4 ΠΈΠ· строки
    np. mat('1, 2, 3, 4') # Ρ‚ΠΎ ΠΆΠ΅ самоС: создаСт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 1x4 ΠΈΠ· строки
    np.mat('1 2; 3 4') # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 2x2

    Или ΠΆΠ΅, вмСсто строк ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ список ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:

    np.mat([5, 4, 3])
    np.mat( [(1,2,3), (4,5,6)])

    Но, Ссли ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… нСльзя ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ), Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка:

    np.mat( [(1,2,3), (4,5,6,7)])# ошибка, размСрности Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция позволяСт Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

    np.diag([1, 2, 3]) # диагональная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 3x3

    Но, Ссли Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список, Ρ‚ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· элСмСнтов, стоящих Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ:

    np.diag([(1,2,3), (4,5,6), (7,8,9)]) # Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ

    Если ΠΆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… списков ΠΈΠ»ΠΈ массивов, Ρ‚ΠΎ слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ

    np.diagflat([(1,2,3), (4,5,6), (7,8,9)])

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для формирования Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. НапримСр:

    np.tri(4) # Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 4x4
    np.tri(4, 2) # Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 4x2

    Если Π½ΡƒΠΆΠ½ΠΎ привСсти ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΊ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ, Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

    a = np.array( [(1,2,3), (4,5,6), (7,8,9)] )
    np.tril(a) # ниТняя Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3
    np.triu(a) # вСрхняя Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3

    Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список:

    np.tril([1,2,3])

    Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ создана Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 3×3 ΠΈΠ· строк [1, 2, 3].

    Π’Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tril ΠΈ triu Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами:

    np.tril([[[1,2,3], [4,5,6], [7,8,9]]])
    np.tril([[[1,2,3], [4,5,6], [7,8,9]], [[10,20,30], [40,50,60], [70,80,90]], [[100,200,300], [400,500,600], [700,800,900]]])

    Π’ этом случаС послСдниС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ сСчСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΊ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ.

    ПослСдняя функция этойгруппы Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π’Π°Π½Π΄Π΅Ρ€ΠΌΠΎΠ½Π΄Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… списков ΠΈΠ»ΠΈ массивов:

    np. vander([1,2,3]) # ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π’Π°Π½Π΄Π΅Ρ€ΠΌΠΎΠ½Π΄Π° 3x3

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ формирования числовых Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ²

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрим Π½Π° этом занятии, слуТит для формирования числовых Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ². Π§Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? Когда ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ язык Python, Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

    range(Start, Stop, Step)

    которая Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ числовой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Start, Stop, Step. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, всС эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ цСлочислСнными. Π’ NumPy Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с вСщСствСнными Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ.

    НазваниС

    ОписаниС

    arange()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ разнСсСнными числами ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

    linspace(start, stop, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массивcΡ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ разнСсСнными числами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

    logspace(start, stop, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с числами, Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСнных ΠΏΠΎ логарифмичСской шкалС.

    geomspace(start, stop, …)

    Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ чисСл ΠΏΠΎ гСомСтричСской прогрСссии.

    meshgrid(x1, …, xn, …)

    x1, …, xn – ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ массивы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для формирования ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΉ сСтки ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· осСй.

    mgrid[]

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΏΠ»ΠΎΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½Ρ‹Ρ… сСток.

    ogrid[]

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ сСтку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…. ΠŸΠ΅Ρ€Π²Π°Ρ функция arrange довольно часто примСняСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Python. Она позволяСт ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ шагом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

    np.arange(5)# ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [0; 5) с шагом 1
    np.arange(1, 5)# ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [1; 5) с шагом 1
    np.arange(1, 5, 0.5) # ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [1; 5) с шагом 0,5

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ range языка Python Π² arrange ΠΏΠ°ΠΊΠ΅Ρ‚Π° NumPy ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ вСщСствСнныС значСния. Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ это:

    np.arange(0, np.pi, 0.1)

    Π—Π΄Π΅ΡΡŒ всС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ вСщСствСнныС. ΠœΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ значСния 0 с шагом 0,1 ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ΠΌ Π΄ΠΎ значСния ΠΏΠΈ (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ). И, Π΄Π°Π»Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот массив, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ синус ΠΈΠ»ΠΈ косинус ΠΎΡ‚ всСх этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

    np.cos(np.arange(0, np.pi, 0.1))

    Π’ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ это ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π‘Π΅Π· ΠΏΠ°ΠΊΠ΅Ρ‚Π° NumPyΠ½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ вычислСниС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. А здСсь ΠΌΡ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ косинуса. Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² Python.

    ΠŸΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ функция linspace. Она Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π½Π° Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

    ΠœΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [start; stop] ΠΈ число ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΎΠΊ Π² этом ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ n. Если n = 0, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ пустой массив. ΠŸΡ€ΠΈ n = 1 – Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ start. ΠŸΡ€ΠΈ n = 2 – значСния start ΠΈ stop. ΠŸΡ€ΠΈ n> 2 Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ m = n-2. НапримСр:

    np.linspace(0, np.pi, 0) # пустой массив
    np.linspace(0, np.pi, 1) # ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0
    np.linspace(0, np.pi, 2) # Π΄Π²Π° значСния: 0 ΠΈ pi
    np.linspace(0, np.pi, 3) # Ρ‚Ρ€ΠΈ значСния: 0, pi/2, pi

    Π’ Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ linspace ΠΎΡ‚ arange? Π’ arange ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ сами шаг двиТСния ΠΏΠΎ числовой оси. ΠŸΡ€ΠΈ этом число Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ опрСдСляСтся Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ значСниями. А Π² linspace ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΈ число Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π° шаг вычисляСтся автоматичСски.

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ logspace ΠΈ geomspace Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π£ Π½ΠΈΡ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΈ число Ρ‡Π»Π΅Π½ΠΎΠ², Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠΌΠ΅Π΅ΠΌ массив ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½. НапримСр:

    np.logspace(0, 1, 3) # значСния: 1, sqrt(10), 10
    np.logspace(0, 1, 4) # значСния: 1, 2.15, 4.64, 10
    Β 
    np.geomspace(1, 4, 3) # значСния: 1, 2, 4
    np.geomspace(1, 16, 5) # значСния: 1, 2, 4, 8, 16

    ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этой Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ построСнии Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ ΠΌΡ‹ ΠΈΡ… рассмотрим, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ построСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ matplotlib.

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ формирования массивов Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…

    Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° основС ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½Ρ‹Ρ….

    НазваниС

    ОписаниС

    array(object, …)

    ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ список ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ object Π² массив NumPy.

    asanyarray(list, …)

    ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ список list Π² массив array, сохраняя Ρ‚ΠΈΠΏ подкласса.

    ascontiguousarray(list, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ массив Π² памяти, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΊ это ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² языкС C.

    asmatrix(list, …)

    ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ list Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ NumPy (Ρ‚ΠΈΠΏ matrix).

    copy(list, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию массива list (Ссли это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ NumPy) ΠΈΠ»ΠΈ просто создаСт массив Π½Π° основС списка языка Python.

    frombuffer(buffer, …)

    ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° Π² массив NumPy

    fromfile(file, …)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… тСкстового ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° file.

    fromfunction(func, shape, …)

    Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΌΠ°ΡΡΠΈΠ²Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ shape с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ func.

    fromiter(iter, …)

    Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ массив Π½Π° основС ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

    fromstring(string, …)

    Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ массив ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… строки.

    loadtxt(file, …)

    Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ массив ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… тСкстового Ρ„Π°ΠΉΠ»Π°.

    Π Π°Π±ΠΎΡ‚Π° этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°, рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…. Ѐункция copy выполняСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива. НапримСр, имССтся массив:

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

    И ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ копию Π² памяти устройства, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

    b = np. copy(a)

    Π’ этом Π»Π΅Π³ΠΊΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ссли вывСсти id этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

    print(id(a), id(b))

    Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    def getRange(x, y):
    Β Β Β  return 100*x + y
    Β 
    a = np.fromfunction(getRange, (2, 2))
    print(a)

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚.ΠΊ. формируСтся двумСрная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ 2×2. Π’ΠΎ Π΅ΡΡ‚ΡŒ, число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π²Π½ΠΎ размСрности ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ соотвСтствуСт индСксу ΠΏΠΎ своСй оси. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² консоли ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

    [[Β  0.Β Β  1.]
    Β [100. 101.]]

    ΠžΡ‚ΡΡŽΠ΄Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΊΠ°ΠΊ мСнялись значСния x, y ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки x = 0, Π° yмСнялся ΠΎΡ‚ 0 Π΄ΠΎ 1, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки: x = 1, yΠΎΡ‚ 0 Π΄ΠΎ 1.

    Часто совмСстно с fromfunction ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅:

    np. fromfunction(lambda x, y: x*100+y, (2, 2))

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅.

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция fromiter позволяСт Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π½Π° основС любого ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр:

    np.fromiter("hello", dtype='U1')

    Π—Π΄Π΅ΡΡŒ строка воспринимаСтся ΠΊΠ°ΠΊ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ разбиваСтся ΠΏΠΎ символам. Или, ΠΌΠΎΠΆΠ½ΠΎΡΠ΄Π΅Π»Π°Ρ‚ΡŒΡ‚Π°ΠΊ:

    def getRange(N):
    Β Β Β  for i in range(N):
    Β Β Β Β Β Β Β  yield i
    Β 
    a = np.fromiter(getRange(4), dtype='int8')
    print(a)

    Π—Π΄Π΅ΡΡŒ Π² качСствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° пСрСдаСтся функция-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив чисСл:

    [0 1 2 3]

    ПослСдняя функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ рассмотрим fromstring позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массив ΠΈΠ· строковых Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

    np.fromstring('1 2 3', dtype='int16', sep= ' ')

    Π—Π΄Π΅ΡΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ sep опрСдСляСт Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Если числа ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Ρ‚ΠΎ это явно Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅:

    np. fromstring('1, 2, 3', dtype='int16', sep= ',')

    Π­Ρ‚ΠΎ Π½Π΅ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² NumPy. Π― ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ» лишь Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΈΡ… список ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС:

    https://numpy.org/doc/stable/

    Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

    #1. ΠŸΠ°ΠΊΠ΅Ρ‚ numpy — установка ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ знакомство | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массивов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array() | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ автозаполнСния, создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ числовых Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #4. Бвойства ΠΈ прСдставлСния массивов, созданиС ΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #5. ИзмСнСниС Ρ„ΠΎΡ€ΠΌΡ‹ массивов, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ осСй | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #6. ОбъСдинСниС ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массивов | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #7. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ, срСзы, ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массивов | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #8. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ массивами | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #9. Π‘ΡƒΠ»Π΅Π²Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, значСния inf ΠΈ nan | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #10. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #11. ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², элСмСнты Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹ | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #12. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° (unique) ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    #13. ВранслированиС массивов | NumPy ΡƒΡ€ΠΎΠΊΠΈ

    • ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ
    • Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² NumPy

    Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… Python с использованиСм Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° NumPy.

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” это двумСрная структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ числа располоТСны Π² строках ΠΈ столбцах. НапримСр:

    Π­Ρ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° прСдставляСт собой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 3×4 (произносится ΠΊΠ°ΠΊ Β«Ρ‚Ρ€ΠΈ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Β»), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ 3 строки ΠΈ 4 столбца.


    Python Matrix

    Python Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнного Ρ‚ΠΈΠΏΠ° для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. Однако ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ список списка ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. НапримСр:

     А = [[1, 4, 5],
        [-5, 8, 9]]
     

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ этот список ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ 2 строки ΠΈ 3 столбца.

    ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ списки Python, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.


    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ списком.

     А = [[1, 4, 5, 12],
        [-5, 8, 9, 0],
        [-6, 7, 11, 19]]
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ("А=", А)
    print("A[1] =", A[1]) # 2-я строка
    print("A[1][2] =", A[1][2]) # 3-ΠΉ элСмСнт 2-ΠΉ строки
    print("A[0][-1] =", A[0][-1]) # ПослСдний элСмСнт 1-ΠΉ строки
    столбСц = []; # пустой список
    для строки Π² A:
      столбСц.Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ (строка [2])
    print("3-ΠΉ столбСц =", столбСц)
     

    Когда ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

      А = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]
    А[1] = [-5, 8, 9, 0]
    А[1][2] = 9
    А[0][-1] = 12
    3-ΠΉ столбСц = [5, 9, 11]
      

    Π’ΠΎΡ‚ Π΅Ρ‰Π΅ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², связанных с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Python с использованиСм Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков.

    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • Π’Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ
    • Π£ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    ИспользованиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков Π² качСствС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для простых Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π² Python с использованиСм ΠΏΠ°ΠΊΠ΅Ρ‚Π° NumPy.


    NumPy Array

    NumPy β€” это ΠΏΠ°ΠΊΠ΅Ρ‚ для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… вычислСний, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ N-ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ NumPy, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ,

    • ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅: Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ NumPy?
    • Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Windows, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС дистрибутив Python anaconda. Он поставляСтся с NumPy ΠΈ нСсколькими Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, связанными с Π½Π°ΡƒΠΊΠΎΠΉ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ.

    ПослС установки NumPy Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.


    NumPy прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив чисСл (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° самом Π΄Π΅Π»Π΅ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ). Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    а = np. массив ([1, 2, 3])
    print(a) # Π’Ρ‹Π²ΠΎΠ΄: [1, 2, 3]
    print(type(a)) # Π’Ρ‹Π²ΠΎΠ΄: 
     

    Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, класс массива NumPy называСтся ndarray .


    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив NumPy?

    БущСствуСт нСсколько способов создания массивов NumPy.


    1. Массив Ρ†Π΅Π»Ρ‹Ρ…, вСщСствСнных ΠΈ комплСксных чисСл

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.массив ([[1, 2, 3], [3, 4, 5]])
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(А)
    A = np.array([[1.1, 2, 3], [3, 4, 5]]) # Массив чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(А)
    A = np.array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив комплСксных чисСл
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(А)
     

    Когда Π²Ρ‹ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

      [[1 2 3]
     [3 4 5]]
    [[1.1 2. 3. ]
     [3. 4. 5. ]]
    [[1.+0.j 2.+0.j 3.+0.j]
     [3.+0.ΠΊ 4.+0.ΠΊ 5.+0.ΠΊ]]
      

    2. Массив Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    zeors_array = np.zeros ((2, 3))
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (zeors_array)
    '''
     Π’Ρ‹Ρ…ΠΎΠ΄:
     [[0. 0. 0.]
      [0. 0. 0.]]
    '''
    one_array = np.ones( (1, 5), dtype=np. int32 ) // ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ dtype
    print(ones_array) # Π’Ρ‹Π²ΠΎΠ΄: [[1 1 1 1 1]]
     

    Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ dtype Π΄ΠΎ 32 Π±ΠΈΡ‚ (4 Π±Π°ΠΉΡ‚Π°). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, этот массив ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния ΠΎΡ‚ -2 -31 Π΄ΠΎ 2 -31 -1 .


    3. ИспользованиС arange() и shape()

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.arange(4)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ('А =', А)
    B = np.arange(12).reshape(2, 6)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ('Π’ =', Π’)
    '''
    Π’Ρ‹Ρ…ΠΎΠ΄:
    А = [0 1 2 3]
    Π’ = [[ 0 1 2 3 4 5]
     [ 6 7 8 9 10 11]]
    '''
     

    Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… способах создания массива NumPy.


    ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

    Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ 3 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°: слоТСниС Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ транспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. РаньшС ΠΌΡ‹ использовали Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки для написания этих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив NumPy.


    Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

    ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ + для добавлСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† NumPy.

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.массив ([[2, 4], [5, -6]])
    B = np.массив([[9, -3], [3, 6]])
    C = A + B # поэлСмСнтноС слоТСниС
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(Π‘)
    '''
    Π’Ρ‹Ρ…ΠΎΠ΄:
    [[11 1]
     [ 8 0]]
     ''' 

    Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ dot() . Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ numpy.dot.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: * ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для умноТСния массивов (умноТСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов Π΄Π²ΡƒΡ… массивов), Π° Π½Π΅ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.массив ([[3, 6, 7], [5, -3, 0]])
    B = np.массив ([[1, 1], [2, 1], [3, -3]])
    Π‘ = А. Ρ‚ΠΎΡ‡ΠΊΠ° (Π’)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(Π‘)
    '''
    Π’Ρ‹Ρ…ΠΎΠ΄:
    [[ 36 -12]
     [-1 2]]
    '''
     

    ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ numpy.transpose для вычислСния транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.массив ([[1, 1], [2, 1], [3, -3]])
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (A.transpose())
    '''
    Π’Ρ‹Ρ…ΠΎΠ΄:
    [[ 1 2 3]
     [ 1 1 -3]]
    '''
     

    Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, NumPy Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠ» Π½Π°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ.


    Доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, строкам ΠΈ столбцам

    Доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Подобно спискам, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс. НачнСм с ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива NumPy.

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    А = np.массив ([2, 4, 6, 8, 10])
    print("A[0] =", A[0]) # ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт
    print("A[2] =", A[2]) # Π’Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт
    print("A[-1] =", A[-1]) # ПослСдний элСмСнт
     

    Когда Π²Ρ‹ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

      А[0] = 2
    А[2] = 6
    А[-1] = 10
      

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² основном являСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ).

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.массив([[1, 4, 5, 12],
        [-5, 8, 9, 0],
        [-6, 7, 11, 19]])
    # ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ("А[0][0] =", А[0][0])
    # Π’Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ("А[1][2] =", А[1][2])
    # ПослСдний элСмСнт послСднСй строки
    print("А[-1][-1] =", А[-1][-1])
     

    Когда ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

      А[0][0] = 1
    А[1][2] = 9
    А[-1][-1] = 19
      

    Доступ ΠΊ строкам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ numpy ΠΊΠ°ΠΊ np
    A = np. массив([[1, 4, 5, 12],
        [-5, 8, 9, 0],
        [-6, 7, 11, 19]])
    print("A[0] =", A[0]) # ΠŸΠ΅Ρ€Π²Π°Ρ строка
    print("A[2] =", A[2]) # Π’Ρ€Π΅Ρ‚ΡŒΡ строка
    print("A[-1] =", A[-1]) # ПослСдняя строка (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 3-я строка) 

    Когда ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

      А[0] = [1, 4, 5, 12]
    А[2] = [-6, 7, 11, 19]
    А[-1] = [-6, 7, 11, 19]
      

    Доступ ΠΊ столбцам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ numpy ΠΊΠ°ΠΊ np
    A = np.массив([[1, 4, 5, 12],
        [-5, 8, 9, 0],
        [-6, 7, 11, 19]])
    print("A[:,0] =",A[:,0]) # ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ столбСц
    print("A[:,3] =", A[:,3]) # Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ столбСц
    print("A[:,-1] =", A[:,-1]) # ПослСдний столбСц (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 4-ΠΉ столбСц)
     

    Когда ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

      А[:,0] = [ 1 -5 -6]
    А[:,3] = [12 0 19]
    А[:,-1] = [12 0 19]
      

    Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» ΠΎ Π½Π°Ρ€Π΅Π·ΠΊΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.


    НарСзка ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    НарСзка ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива NumPy Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° списку. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Ρ€Π΅Π·ΠΊΠ° для списка, посСтитС ΡΡ‚Π°Ρ‚ΡŒΡŽ ПониманиС Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ срСзов Π² Python.

    Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    Π±ΡƒΠΊΠ²Ρ‹ = np.array([1, 3, 5, 7, 9, 7, 5])
    # элСмСнты с 3-Π³ΠΎ ΠΏΠΎ 5-ΠΉ
    print(letters[2:5]) # Π’Ρ‹Π²ΠΎΠ΄: [5, 7, 9]
    # элСмСнты с 1-Π³ΠΎ ΠΏΠΎ 4-ΠΉ
    print(letters[:-5]) # Π’Ρ‹Π²ΠΎΠ΄: [1, 3]
    # ΠΎΡ‚ 6-Π³ΠΎ Π΄ΠΎ послСднСго элСмСнта
    print(letters[5:]) # Π’Ρ‹Π²ΠΎΠ΄:[7, 5]
    # ΠΎΡ‚ 1-Π³ΠΎ Π΄ΠΎ послСднСго элСмСнта
    print(letters[:]) # Π’Ρ‹Π²ΠΎΠ΄:[1, 3, 5, 7, 9, 7, 5]
    # ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ списка
    print(letters[::-1]) # Π’Ρ‹Π²ΠΎΠ΄:[5, 7, 9, 7, 5, 3, 1]
     

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    A = np.массив([[1, 4, 5, 12, 14],
        [-5, 8, 9, 0, 17],
        [-6, 7, 11, 19, 21]])
    print(A[:2, :4]) # Π΄Π²Π΅ строки, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ столбца
    ''' Π’Ρ‹Ρ…ΠΎΠ΄:
    [[ 1 4 5 12]
     [-5 8 9 0]]
    '''
    print(A[:1,]) # пСрвая строка, всС столбцы
    ''' Π’Ρ‹Ρ…ΠΎΠ΄:
    [[ 1 4 5 12 14]]
    '''
    print(A[:,2]) # всС строки, Π²Ρ‚ΠΎΡ€ΠΎΠΉ столбСц
    ''' Π’Ρ‹Ρ…ΠΎΠ΄:
    [ 5 9 11 ]
    '''
    print(A[:, 2:5]) # всС строки, с Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΏΠΎ пятый столбСц
    '''Π’Ρ‹Ρ…ΠΎΠ΄:
    [[ 5 12 14]
     [ 9 0 17 ]
     [11 19 21]]
    '''
     

    Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, использованиС NumPy (вмСсто Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков) Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, ΠΈ ΠΌΡ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΊΠΎΡΠ½ΡƒΠ»ΠΈΡΡŒ основ. ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ NumPy, особСнно Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ….

    РСсурсы NumPy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ:

    • Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ NumPy
    • Бсылка NumPy

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python

    Π’ этом руководствС ΠΏΠΎ Python ΠΌΡ‹ обсудим , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python . ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

    • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² python ?
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NumPy Π² python
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python 3
    • Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for Π² Python
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ списка
    • Π£ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ 8 строк, ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° с 1 столбцом ΠΈ 1 строкой, 8 столбцов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 8 строк.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅?

    • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python прСдставляСт собой Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² строках ΠΈ столбцах.
    • Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ записи Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «строками», Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ β€” «столбцами».
    • Если Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ r строк ΠΈ c столбцов, Ρ‚ΠΎ порядок ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ опрСдСляСтся ΠΊΠ°ΠΊ r x c .
    • Π”Π°Π½Π½Ρ‹Π΅, хранящиСся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ строками, числами ΠΈ Ρ‚. Π΄.
    • Π’ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Π΄Π°Π½Π½Ρ‹Π΅ упорядочСны ΠΏΠΎ строкам ΠΈ столбцам.
    • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” ваТная структура Π΄Π°Π½Π½Ρ‹Ρ… для матСматичСских ΠΈ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… расчСтов.
    • Π’ Python Π½Π΅Ρ‚ встроСнного Ρ‚ΠΈΠΏΠ° для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ список ΠΈΠ· списка ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

    Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ» ΠΊΠΎΠΏΠΈΠΈ Python (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹) ΠΈ пСрСкрСстная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Python Pandas.

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°

    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python :

    • Π’ Python сущСствуСт популярная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ NumPy .
    • Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NumPy Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Команда для установки NumPy β€” Β«pip install NumPyΒ» .
    • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ NumPy Π² ΠΊΠΎΠ΄Π΅, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ β€˜ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ NumPy ΠΊΠ°ΠΊ np’ .
    • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NumPy.matrix() .
    • ΠœΡ‹ возьмСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    a = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк:"))
    b = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов:"))
    print("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число Π² ΠΎΠ΄Π½Ρƒ строку Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»:")
    val = список (ΠΊΠ°Ρ€Ρ‚Π° (Ρ†Π΅Π»ΠΎΠ΅, Π²Π²ΠΎΠ΄ (). Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ()))
    ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° = np.array(val).reshape(a,b)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°) 

    ПослС написания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python с использованиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Β«ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Β» , Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«[[2 4] [6 3]] Β» . Π—Π΄Π΅ΡΡŒ np.array().reshape() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ снимку экрана , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ .

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NumPy Π² Python

    Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NumPy Π² Python .

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΌΡ‹ сначала ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ NumPy ΠΊΠ°ΠΊ np , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ np.empty() для создания пустой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    ΠΌ = np.пусто((0,0))
    print(m) 

    ПослС написания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° (создайтС ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NumPy Π² python), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Β«mΒ» , Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«[ ] Β» . Π—Π΄Π΅ΡΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° np.empty() ΠΈΠ· 0 строк ΠΈ 0 столбцов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания пустой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² python.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ снимку экрана , создав ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ NumPy Π² python .

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ NumPy Π² python

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² python 3

    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ numpy ΠΊΠ°ΠΊ np , Π° Π·Π°Ρ‚Π΅ΠΌ создадим ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ numpy.matrix() . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана Π² python.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    m = np.matrix([[3, 4], [5, 2]])
    print('Matrix is:\n', m) 

    ПослС написания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python 3), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Β«mΒ» , Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«[[ 3 4] [5 2]] ” . Π—Π΄Π΅ΡΡŒ np.matrix() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ снимку экрана , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python 3 .

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² python 3

    Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² python

    Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† β€” это опСрация, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ поэлСмСнтноС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ np.multiply() .

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    ΠΌΠ°Ρ‚1 = np.matrix ([[2, 5], [4, 1]])
    ΠΌΠ°Ρ‚2 = np.matrix ([[6, 5], [4, 7]])
    matrix_result = np.multiply (mat1, mat2)
    print(matrix_result) 

    ПослС написания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² python), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Β«matrix_resultΒ» , Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«[[12 25] [16 7]]Β». Π—Π΄Π΅ΡΡŒ np.multiply() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для умноТСния Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΈ послС умноТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΎΠ΄Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ снимку экрана, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² python.

    Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² python

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for Π² python

    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for Π² python .

    Для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм Ρ†ΠΈΠΊΠ»Π° for Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° состоит ΠΈΠ· списков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ столбцам ΠΈ строкам, Π° Ρ†ΠΈΠΊΠ» for ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для строк ΠΈ столбцов.

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

     c_size = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ столбца: "))
    r_size = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ строки: "))
    Ρ… = []
    Ρƒ = []
    для j в диапазонС (0, c_size):
        Ρƒ.Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ(0)
    для i в диапазонС (0, r_size):
        Ρ…. Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (Ρƒ)
    print(x) 

    ПослС написания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for Π² python), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Β«xΒ» , Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«[[0, 0, 0], [0, 0, 0], [0, 0, 0]]Β». Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ строки ΠΈ столбца ΠΈ добавляСт столбСц ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° Π² качСствС Π²Ρ‹Π²ΠΎΠ΄Π°.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ снимку экрана, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for Π² python .

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for Π² Python

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список

    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список ?

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ NumPy , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ np.array() , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ даст Π²Ρ‹Π²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    ΠΌΠ°Ρ‚ = np.массив ([[1, 3, 2], [5, 6, 4]])
    print(mat) 

    ПослС написания ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ списка), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Β«matΒ» , Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«[[1 3 2] [5 6 4]]Β». Π—Π΄Π΅ΡΡŒ np.array() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм списка ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² качСствС Π²Ρ‹Π²ΠΎΠ΄Π°.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ снимку экрана, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список

    Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список 8 столбцов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 8 строк

    Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ 8 строк, 1 столбСц ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ 1 строку, 8 столбцов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 8 строк. Π’ΠΎΡ‚ графичСскоС прСдставлСниС этой Ρ‚Π΅ΠΌΡ‹.

    ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² python
    • На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ Ρƒ нас Π΅ΡΡ‚ΡŒ 8 строк с 1 столбцом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° 1 строку с 8 столбцами.
    • ОсновноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†: «количСство строк Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ количСству столбцов Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅Β», ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ выполняСтся, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ.
    • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π’ΠΎΡ‚ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ умноТСния Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python.
    Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python
    • Π’ основном сущСствуСт 3 способа Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python.
      • numpy.dot() ΠΌΠ΅Ρ‚ΠΎΠ΄
      • с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° @ Π½Π° 2 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ….
      • ΠœΠ΅Ρ‚ΠΎΠ΄ tf.matmul() Π² Tensorflow
    • ΠœΠ΅Ρ‚ΠΎΠ΄ Numpy dot ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для нахоТдСния произвСдСния Π΄Π²ΡƒΡ… массивов.
    • БущСствуСт тонкая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ массивом ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ умноТСния двумя Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ numpy. dot() . Π­Ρ‚ΠΎ даст Π²Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ошибок.
    • Π’ΠΎΡ‚ синтаксис для использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° numpy.dot() Π² Python.
     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    np.dot(matrix1, matrix2) 
    • Π—Π΄Π΅ΡΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°1 ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°2 β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠœΡ‹ Π½Π΅ создали ΠΈΡ… Π² синтаксисС, Π½ΠΎ ΠΎΠ½ΠΈ доступны Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.
    • Π”Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β« @ Β» Π² Python. 9ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ 0238 @ β€˜ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Π·Π½Π°ΠΊΠ° для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python.
    • ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, Π° Π½Π΅ с массивами.
    • Π’ΠΎΡ‚ синтаксис для использования @ для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python.
     ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°1 @ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°2 
    • Π’Ρ€Π΅Ρ‚ΡŒΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. Tensorflow β€” это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ инструмСнт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ с Python ΠΈ R для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний.
    • Π˜ΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ встроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ расчСт слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².
    • Если Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с большими ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя вычислСний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ tensorflow tf.matmul() Π² tensorflow python.
    • Π’ΠΎΡ‚ синтаксис для выполнСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ умноТСния с использованиСм Python Tensorflow
     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΊΠ°ΠΊ tf
    tf.matmul(matrix1, matrix2) 

    Π’ΠΎΡ‚ рСализация ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ умноТСния 1 строки 8 столбцов ΠΈ 8 строк 1 столбца Π½Π° Python Jupyter Notebook.

    Π’Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ руководства ΠΏΠΎ Python:

    • ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа Python + ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
    • Python Π§Ρ‚Π΅Π½ΠΈΠ΅ CSV-Ρ„Π°ΠΉΠ»Π° ΠΈ запись CSV-Ρ„Π°ΠΉΠ»Π°
    • Python Массив с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ
    • Π₯эш-Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Python
    • Π‘Π»ΠΎΡ‡Π½Ρ‹ΠΉ отступ Π² Python
    • Как ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ Π² Python
    • 4 ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π² Python
    • РСгулярныС выраТСния Π² Python
    • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Python
    • Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ пространству ΠΈΠΌΠ΅Π½ Python

    Π’ этом ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ пособии ΠΏΠΎ Python ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ . ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ рассмотрСли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

    • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² python?
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NumPy Π² Python
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python 3
    • Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ for loop Π² python
    • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список
    • Π£ΠΌΠ½ΠΎΠΆΡŒΡ‚Π΅ 8-ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с 1 столбцом ΠΈ 1-ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ 8-ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ²ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 8-ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ.

    Bijay Kumar

    Python β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных языков Π² Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π¨Ρ‚Π°Ρ‚Π°Ρ… АмСрики. Π― Π΄Π°Π²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с Python ΠΈ имСю ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Π½Π° Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn ΠΈ Ρ‚. Π΄. Π£ мСня Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Π² Ρ‚Π°ΠΊΠΈΡ… странах, ΠΊΠ°ΠΊ БША, Канада, ВСликобритания, Австралия, Новая ЗСландия ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ.

    Enjoysharepoint.com/

    numpy.

    matrix β€” Руководство NumPy v1.23

    всС ([ось, Π²Ρ‹Ρ…ΠΎΠ΄])

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, всС Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты вдоль Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ True.

    любой ([ось, внС])

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт массива вдоль Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.

    argmax ([ось, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ оси.

    Π°Ρ€Π³ΠΌΠΈΠ½ ([ось, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ оси.

    argpartition (kth[ ось, Π²ΠΈΠ΄, порядок])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСксы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ этот массив.

    argsort ([ось, Π²ΠΈΠ΄, порядок])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСксы для сортировки этого массива.

    astype (dtype[ Π·Π°ΠΊΠ°Π·, Π»ΠΈΡ‚ΡŒΠ΅, субок, копия])

    Копия массива, привСдСнная ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

    ΠΎΠ±ΠΌΠ΅Π½ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ ([Π½Π° мСстС])

    ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами Π±Π°ΠΉΡ‚Ρ‹ элСмСнтов массива

    Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ (Π²Ρ‹Π±ΠΎΡ€ [ Π²Ρ‹Ρ…ΠΎΠ΄, Ρ€Π΅ΠΆΠΈΠΌ])

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ индСксный массив для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ массива ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

    Π·Π°ΠΆΠΈΠΌ ([ΠΌΠΈΠ½., макс., Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ [ΠΌΠΈΠ½., макс.] .

    ΡΠΆΠ°Ρ‚ΡŒ (состояниС[ ось, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ срСзы этого массива вдоль Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    соСдинСниС ()

    КомплСксно-сопряТСнныС всС элСмСнты.

    сопряТСнный ()

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ комплСксно-сопряТСнноС число поэлСмСнтно.

    копия ([заказ])

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ копию массива.

    cumprod ([ось, Ρ‚ΠΈΠΏ d, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ совокупноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнтов ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    общая сумма ([ось, dtype, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΡƒΡŽ сумму элСмСнтов ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    диагональ ([смСщСниС, ось 1, ось 2])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ.

    Π΄Π°ΠΌΠΏ (Ρ„Π°ΠΉΠ»)

    Π”Π°ΠΌΠΏ массива Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

    ΠΎΡ‚Π²Π°Π»Ρ‹ ()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пиксСль массива Π² Π²ΠΈΠ΄Π΅ строки.

    Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

    Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ массив скалярным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

    ΡΠΏΠ»ΡŽΡ‰ΠΈΡ‚ΡŒ ([Π·Π°ΠΊΠ°Π·])

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡΠ³Π»Π°ΠΆΠ΅Π½Π½ΡƒΡŽ копию ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

    гСтА ()

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ сСбя ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ndarray .

    getA1 ()

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ сСбя ΠΊΠ°ΠΊ сглаТСнный ndarray .

    getH ()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ (комплСксноС) сопряТСнноС транспонированиС self .

    ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ (ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ) ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎΠ³ΠΎ self .

    ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ транспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

    Π³Π΅Ρ‚Ρ„ΠΈΠ»Π΄ (dtype[ смСщСниС])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

    элСмСнт (*Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)

    Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ элСмСнт массива Π² стандартный скаляр Python ΠΈ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ.

    Π½Π°Π±ΠΎΡ€ элСмСнтов (*args)

    Вставка скаляра Π² массив (скаляр прСобразуСтся Π² dtype массива, Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ)

    макс. ([ось,Β Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ оси.

    срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ([ось, Ρ‚ΠΈΠΏ d, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    ΠΌΠΈΠ½ ([ось, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ оси.

    newbyteorder ([new_order])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ массив с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, просмотрСнными с Π΄Ρ€ΡƒΠ³ΠΈΠΌ порядком Π±Π°ΠΉΡ‚ΠΎΠ².

    Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСксы Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… элСмСнтов.

    Ρ€Π°Π·Π΄Π΅Π» (kth[ ось, Π²ΠΈΠ΄, порядок])

    ΠŸΠ΅Ρ€Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Π΅Ρ‚ элСмСнты Π² массивС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта Π² k-ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΎ Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π² отсортированном массивС.

    prod ([ось, Ρ‚ΠΈΠΏ d, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнтов массива ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    ptp ([ось, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π Π°Π·ΠΌΠ°Ρ… (максимум-ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ) значСния ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    put (индСксы, значСния [ Ρ€Π΅ΠΆΠΈΠΌ])

    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ a.flat[n] = values[n] для всСх n Π² индСксах.

    Ρ€Π°Π²Π΅Π»ΡŒ ([Π·Π°ΠΊΠ°Π·])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠ³Π»Π°ΠΆΠ΅Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

    ΠΏΠΎΠ²Ρ‚ΠΎΡ€ (повторяСт [ ось])

    ΠŸΠΎΠ²Ρ‚ΠΎΡ€ элСмСнтов массива.

    ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ (Ρ„ΠΎΡ€ΠΌΠ° [ порядок])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, содСрТащий Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ с Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

    ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (new_shape[Β refcheck])

    ИзмСнСниС Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива Π½Π° мСстС.

    Ρ€Π°ΡƒΠ½Π΄ ([дСсятичныС числа,Β Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ a с ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа дСсятичных Π·Π½Π°ΠΊΠΎΠ².

    searchsorted (v[ сторона, сортировщик])

    НайдитС индСксы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСмСнты v Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ вставлСны Π² a для сохранСния порядка.

    setfield (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, dtype[ смСщСниС])

    ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ мСсто Π² ΠΏΠΎΠ»Π΅, опрСдСляСмом Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

    setflags ([write, align, uic])

    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ΠΈ массива WRITEABLE, ALIGNED, WRITEBACKIFCOPY соотвСтствСнно.

    сортировка ([ось, Π²ΠΈΠ΄, порядок])

    Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива Π½Π° мСстС.

    ΡΠΆΠ°Ρ‚ΡŒ ([ось])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

    станд. ([ось, dtype, Π²Ρ‹Ρ…ΠΎΠ΄, ddof])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ стандартноС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ элСмСнтов массива ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    сумма ([ось, Ρ‚ΠΈΠΏ d, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    оси ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ (ось 1, ось 2)

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²ΠΈΠ΄ массива с осью 1 ΠΈ осью 2 , ​​пСрСставлСнными мСстами.

    Π²Π·ΡΡ‚ΡŒ (индСксы [ ось, Π²Ρ‹Ρ…ΠΎΠ΄, Ρ€Π΅ΠΆΠΈΠΌ])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, сформированный ΠΈΠ· элСмСнтов ΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ индСксам.

    Ρ‚ΠΎΠ±Π°ΠΉΡ‚ ([порядок])

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚ΠΎΠ² Python, содСрТащих Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² массивС.

    tofile (fid[ sep, format])

    Π—Π°ΠΏΠΈΡΡŒ массива Π² Ρ„Π°ΠΉΠ» Π² тСкстовом ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

    толист ()

    Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Π²ΠΈΠ΄Π΅ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ) списка.

    струна ([Π·Π°ΠΊΠ°Π·])

    ПсСвдоним совмСстимости для tobytes с Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.

    трассировка ([смСщСниС, ось 1, ось 2, dtype, Π²Ρ‹Ρ…ΠΎΠ΄])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму ΠΏΠΎ диагоналям массива.

    Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (*оси)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ массива с транспонированными осями.

    var ([ось, dtype, out, ddof])

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΈΡΠΏΠ΅Ρ€ΡΠΈΡŽ элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ оси.

    просмотр ([dtype][Β type])

    Новый Π²ΠΈΠ΄ массива с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

    ВранспонированиС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, массивы NumPy ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Python?

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python β€” это спСциализированный Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² строках ΠΈ столбцах. Π”Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ числами, строками, выраТСниями, символами ΠΈ Ρ‚. Π΄. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² матСматичСских ΠΈ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… расчСтах.

    Из этого руководства ΠΏΠΎ Python Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:

    • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Python?
    • Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python?
    • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка
    • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Python Matrix, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ список.
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ послСдний элСмСнт ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ строк Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с использованиСм Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка
    • Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с использованиСм Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка
    • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python с использованиСм массивов ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python Numpy
    • ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Π°Ρ опСрация с использованиСм Numpy.Array()
    • Доступ ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ NumPy

    Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python?

    Π”Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    Π¨Π°Π³ 1)

    Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 2Γ—2. Он ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ строки ΠΈ 2 столбца. Π”Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ числами. Π‘Ρ‚Ρ€ΠΎΠΊΠ°1 ΠΈΠΌΠ΅Π΅Ρ‚ значСния 2,3, Π° строка2 ΠΈΠΌΠ΅Π΅Ρ‚ значСния 4,5. Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹, Ρ‚. Π΅. col1, ΠΈΠΌΠ΅ΡŽΡ‚ значСния 2,4, Π° col2 β€” значСния 3,5.

    Π¨Π°Π³ 2)

    ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 2Γ—3. Он ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ строки ΠΈ Ρ‚Ρ€ΠΈ столбца. Π”Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки, Ρ‚. Π΅. row1, ΠΈΠΌΠ΅ΡŽΡ‚ значСния 2, 3, 4, Π° row2 β€” значСния 5, 6, 7. Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ col1 ΠΈΠΌΠ΅ΡŽΡ‚ значСния 2,5, col2 ΠΈΠΌΠ΅ΡŽΡ‚ значСния 3,6, Π° col3 ΠΈΠΌΠ΅ΡŽΡ‚ значСния 4,7.

    Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ nxn Π² Python. МногиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ слоТСниСм, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ‚. Π΄.

    Π’ Python Π½Π΅Ρ‚ простого способа Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ массивы, ΠΈ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

    • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка
    • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python с использованиСм массивов ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python Numpy

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python с использованиСм Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка

    Π’ Python массивы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с использованиСм Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… списка. Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ список для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python.

    ΠœΡ‹ создадим ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 3Γ—3, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

    • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠΌΠ΅Π΅Ρ‚ 3 строки ΠΈ 3 столбца.
    • ΠŸΠ΅Ρ€Π²Π°Ρ строка Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ списка Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ: [8,14,-6]
    • Вторая строка Π² спискС Π±ΡƒΠ΄Π΅Ρ‚: [12,7,4]
    • Π’Ρ€Π΅Ρ‚ΡŒΡ строка Π² спискС Π±ΡƒΠ΄Π΅Ρ‚: [-11,3,21]

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ списка со всСми строками ΠΈ столбцами ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅:

     Бписок = [[Row1],
               [Ряд 2],
               [Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3]
               . ..
               [РядN]]
     

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² соотвСтствии с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Ρ‚ΠΈΠΏ списка с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

     M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
     

    Для чтСния Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Python Matrix с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ списка.

    ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ послСдний элСмСнт ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€: для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

     M1 = [[8, 14, -6],
               [12,7,4],
               [-11,3,21]]
    #Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(M1)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
     

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ послСдний элСмСнт ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

     М1 = [[8, 14, -6],
               [12,7,4],
               [-11,3,21]]
    Π΄Π»ΠΈΠ½Π°_ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ = Π΄Π»ΠΈΠ½Π° (M1)
    #Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ послСдний элСмСнт ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.
    для i в диапазонС (matrix_length):
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (M1[i][-1])
     

    Π’Ρ‹Π²ΠΎΠ΄:

     -6
    4
    21
     

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ строк Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

     M1 = [[8, 14, -6],
               [12,7,4],
               [-11,3,21]]
    Π΄Π»ΠΈΠ½Π°_ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ = Π΄Π»ΠΈΠ½Π° (M1)
    #Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅
    для i в диапазонС (matrix_length):
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (M1 [я])
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [8, 14, -6]
    [12, 7, 4]
    [-11, 3, 21]
     

    Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ здСсь Π±ΡƒΠ΄ΡƒΡ‚ Π² Π²ΠΈΠ΄Π΅ списка. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позаботится ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 1:

     M1 = [[8, 14, -6],
               [12,7,4],
               [-11,3,21]]
     

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 2 :

     M2 = [[3, 16, -6],
               [9,7,-4],
               [-1,3,13]]
     

    ПослСдняя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ M1 + M2.

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 3 :

     M3 = [[0,0,0],
                [0,0,0],
                [0,0,0]]
     

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

    Для добавлСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ» for, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΎΠ±Π΅ΠΈΠΌ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌ.

     М1 = [[8, 14, -6],
          [12,7,4],
          [-11,3,21]]
    М2 = [[3, 16, -6],
               [9,7,-4],
               [-1,3,13]]
    М3 = [[0,0,0],
           [0,0,0],
           [0,0,0]]
    Π΄Π»ΠΈΠ½Π°_ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ = Π΄Π»ΠΈΠ½Π° (M1)
    #Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ M1 ΠΈ M2
    для i в диапазонС (len (M1)):
    для k в диапазонС (len (M2)):
            M3[i][k] = M1[i][k] + M2[i][k]
    #Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ
    print("Π‘ΡƒΠΌΠΌΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2 = ", M3)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     Π‘ΡƒΠΌΠΌΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
     

    Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с использованиСм Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для ΠΎΠ±Π΅ΠΈΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅:

     M1 = [[8, 14, -6],
          [12,7,4],
          [-11,3,21]]
    М2 = [[3, 16, -6],
               [9,7,-4],
               [-1,3,13]]
    М3 = [[0,0,0],
           [0,0,0],
           [0,0,0]]
    Π΄Π»ΠΈΠ½Π°_ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ = Π΄Π»ΠΈΠ½Π° (M1)
    #Для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2
    для i в диапазонС (len (M1)):
    для k в диапазонС (len (M2)):
            M3[i][k] = M1[i][k] * M2[i][k]
    #Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ
    print("Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2 = ", M3)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
     

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python с использованиСм массивов ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python Numpy

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python Numpy ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами. Numpy ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ массив Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ список.

    Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Numpy Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Numpy.

    Π¨Π°Π³ 1)

    Команда для установки Numpy:

     pip install NumPy 

    Π¨Π°Π³ 2)

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Numpy Π² своСм ΠΊΠΎΠ΄Π΅, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

     import NumPy 

    Π¨Π°Π³ 3)

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ NumPy, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ псСвдоним, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

     import NumPy as np 

    ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠΈΡ‚ΠΎΠ½Π°.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€: массив Π² Numpy для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Python

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.массив([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(M1)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ 5 -10 15]
     [ 3 -6 9]
     [-4 8 12]]
     

    ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Π°Ρ опСрация с использованиСм Numpy.Array()

    ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Π°Ρ опСрация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, β€” это слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, транспонированиС, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ строк, столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π½Π°Ρ€Π΅Π·ΠΊΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Ρ‚. Π΄. Π’ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ собираСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ array().

    Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слоТСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΌΡ‹ создадим Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ numpy.array() ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (+).

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
    M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
    М3 = М1 + М2
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(M3)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ 12 -12 36]
     [ 16 12 48 ]
     [ 6 -12 60]]
     

    Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΌΡ‹ создадим Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ numpy.array() ΠΈ Π²Ρ‹Ρ‡Ρ‚Π΅ΠΌ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (-).

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
    M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
    М3 = М1 - М2
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(M3)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ -6 24 -18]
     [-6-32-18]
     [-20 40 -18]]
     

    Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

    Π‘Π½Π°Ρ‡Π°Π»Π° создадим Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ numpy. arary(). Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ numpy dot(). Numpy.dot() β€” это Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2. Numpy.dot() ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΈ выполняСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.массив ([[3, 6], [5, -10]])
    M2 = np.массив ([[9, -18], [11, 22]])
    М3 = М1.Ρ‚ΠΎΡ‡ΠΊΠ°(М2)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(M3)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ 93 78]
     [-65-310]]
     

    ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ вычисляСтся ΠΏΡƒΡ‚Π΅ΠΌ прСобразования строк Π² столбцы ΠΈ столбцов Π² строки. Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ transpose() ΠΈΠ· Numpy ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для вычислСния транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.массив([[3, 6, 9], [5, -10, 15], [4,8,12]])
    M2 = M1.Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ()
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(М2)
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ 3 5 4]
     [ 6 -10 8]
     [ 9 15 12]]
     

    НарСзка ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    НарСзка Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π°ΠΌ элСмСнты ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° основС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ/ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ индСкса.

    • Бинтаксис для Π½Π°Ρ€Π΅Π·ΠΊΠΈ – [Π½Π°Ρ‡Π°Π»ΠΎ:ΠΊΠΎΠ½Π΅Ρ†]
    • Если Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΎΠ½ считаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 0. НапримСр, [:5] ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π²Π΅Π½ [0:5].
    • Если ΠΊΠΎΠ½Π΅Ρ† Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ массива.
    • Если Π½Π°Ρ‡Π°Π»ΠΎ/ΠΊΠΎΠ½Π΅Ρ† ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Ρ‚ΠΎ Π½Π°Ρ€Π΅Π·ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΊΠΎΠ½Ρ†Π° массива.

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ приступим ΠΊ срСзу ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала ΠΏΠΎΠΉΠΌΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ срСз ΠΊ простому массиву.

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    массив = np.массив ([2,4,6,8,10,12,14,16])
    print(arr[3:6]) # Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ элСмСнты с 3 ΠΏΠΎ 5
    print(arr[:5]) # Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ элСмСнты ΠΎΡ‚ 0 Π΄ΠΎ 4
    print(arr[2:]) # Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ элСмСнты ΠΎΡ‚ 2 Π΄ΠΎ Π΄Π»ΠΈΠ½Ρ‹ массива.
    print(arr[-5:-1]) # Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ½Ρ†Π°, Ρ‚.Π΅. ΠΎΡ‚ -5 Π΄ΠΎ -2
    print(arr[:-1]) # Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ½Ρ†Π°, Ρ‚.Π΅. ΠΎΡ‚ 0 Π΄ΠΎ -2
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [8 10 12]
    [ 2 4 6 8 10 ]
    [ 6 8 10 12 14 16]
    [ 8 10 12 14 ]
    [ 2 4 6 8 10 12 14]
     

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π½Π°Ρ€Π΅Π·ΠΊΡƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Для выполнСния срСза ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    синтаксис Π±ΡƒΠ΄Π΅Ρ‚ M1[Π½Π°Ρ‡Π°Π»ΠΎ_строки:ΠΊΠΎΠ½Π΅Ρ†_строки, Π½Π°Ρ‡Π°Π»ΠΎ_столбца:ΠΊΠΎΠ½Π΅Ρ†_столбца]

    • ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ/ΠΊΠΎΠ½Π΅Ρ† Π±ΡƒΠ΄Π΅Ρ‚ для строки, Ρ‚. Π΅. для Π²Ρ‹Π±ΠΎΡ€Π° строк ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.
    • Π’Ρ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ/ΠΊΠΎΠ½Π΅Ρ† Π±ΡƒΠ΄Π΅Ρ‚ для столбца, Ρ‚.Π΅. для Π²Ρ‹Π±ΠΎΡ€Π° столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° M1 t, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

     M1 = np.массив([[2, 4, 6, 8, 10],
        [3, 6, 9, -12, -15],
        [4, 8, 12, 16, -20],
        [5, -10, 15, -20, 25]])
     

    ВсСго 4 ряда. ИндСкс начинаСтся с 0 Π΄ΠΎ 3. 0 -я -я строка β€” это [2,4,6,8,10], 1 -я -я строка β€” это [3,6,9,-12,-15], Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ 2 -ΠΉ -ΠΉ ΠΈ 3-ΠΉ -ΠΉ -ΠΉ.

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° M1 ΠΈΠΌΠ΅Π΅Ρ‚ 5 столбцов. ИндСкс начинаСтся ΠΎΡ‚ 0 Π΄ΠΎ 4. Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 0 th ΠΈΠΌΠ΅Π΅Ρ‚ значСния [2,3,4,5], столбцы 1 st ΠΈΠΌΠ΅ΡŽΡ‚ значСния [4,6,8,-10], Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ 2 -ΠΉ , 3-ΠΉ -ΠΉ , 4-ΠΉ -ΠΉ -ΠΉ ΠΈ 5-ΠΉ -ΠΉ -ΠΉ.

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ строк ΠΈ столбцов ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ строки 1 st ΠΈ 2 nd , Π° для столбцов Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ столбцы. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ этот Π²Ρ‹Π²ΠΎΠ΄, ΠΌΡ‹ использовали: M1[1:3, 1:4]

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

     import numpy as np
    M1 = np.массив([[2, 4, 6, 8, 10],
        [3, 6, 9, -12, -15],
        [4, 8, 12, 16, -20],
        [5, -10, 15, -20, 25]])
    print(M1[1:3, 1:4]) # Для 1:3 это даст ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку.
    #Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ взяты с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ.
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ 6 9 -12]
     [ 8 12 16]]
     

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€: для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ всСх строк ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… столбцов

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.массив([[2, 4, 6, 8, 10],
        [3, 6, 9, -12, -15],
        [4, 8, 12, 16, -20],
        [5, -10, 15, -20, 25]])
    print(M1[:,3]) # Π­Ρ‚ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ всС строки ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ столбца.
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [ 8 -12 16 -20]
     

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€: для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΈ всСх столбцов

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.массив([[2, 4, 6, 8, 10],
        [3, 6, 9, -12, -15],
        [4, 8, 12, 16, -20],
        [5, -10, 15, -20, 25]])
    print(M1[:1,]) # Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° пСрвая строка ΠΈ всС столбцы
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[ 2 4 6 8 10]]
     

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€: для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Ρ€Π΅Ρ… строк ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… столбцов

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np. массив([[2, 4, 6, 8, 10],
        [3, 6, 9, -12, -15],
        [4, 8, 12, 16, -20],
        [5, -10, 15, -20, 25]])
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (M1 [: 3,: 2])
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [[2 4]
     [3 6]
     [4 8]]
     

    Доступ ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ NumPy

    ΠœΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Ρ€Π΅Π·ΠΊΠ°. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ это Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строки ΠΈ столбцы ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

    Для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ строк ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

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

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np.массив([[3, 6, 9], [5, -10, 15], [4,8,12]])
    print(M1[0]) # пСрвая строка
    print(M1[1]) # вторая строка
    print(M1[-1]) # -1 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ послСднюю строку
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [3 6 9]
    [ 5 -10 15]
    [ 4 8 12]
     

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСднюю строку, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс ΠΈΠ»ΠΈ -1. НапримСр, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠΌΠ΅Π΅Ρ‚ 3 строки:

    , поэтому M1[0] даст Π²Π°ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку,

    M1[1] даст Π²Π°ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку

    M1[2] ΠΈΠ»ΠΈ M1[-1] даст Π²Π°ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ряд ΠΈΠ»ΠΈ послСдний ряд.

    Для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

     ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np
    M1 = np. массив([[2, 4, 6, 8, 10],
        [3, 6, 9, -12, -15],
        [4, 8, 12, 16, -20],
        [5, -10, 15, -20, 25]])
    print(M1[:,0]) # Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ столбСц
    print(M1[:,3]) # Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ столбСц
    print(M1[:,-1]) # -1 даст Π²Π°ΠΌ послСдний столбСц
     

    Π’Ρ‹Π²ΠΎΠ΄:

     [2 3 4 5]
    [ 8 -12 16 -20]
    [ 10 -15 -20 25]
     

    РСзюмС:

    • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python прСдставляСт собой спСциализированный Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² строках ΠΈ столбцах. Π”Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ числами, строками, выраТСниями, символами ΠΈ Ρ‚. Π΄. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² матСматичСских ΠΈ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… расчСтах.
    • Π’ Python Π½Π΅Ρ‚ простого способа Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана с использованиСм Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ numpy.
    • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python Numpy ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами. Numpy ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ массив Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ список.
    • ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Π°Ρ опСрация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, это слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, транспонированиС, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ строк, столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ€Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Ρ‚. Π΄.
    • Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ numpy.array() ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (+).
    • Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ numpy dot(). Numpy.dot() β€” это Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† M1 ΠΈ M2. Numpy.dot() ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΈ выполняСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.
    • ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ вычисляСтся ΠΏΡƒΡ‚Π΅ΠΌ прСобразования строк Π² столбцы ΠΈ столбцов Π² строки. Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ transpose() ΠΈΠ· Numpy ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для вычислСния транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.
    • Π Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π°ΠΌ элСмСнты Π½Π° основС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ/ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ индСкса.

    Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python — GeeksforGeeks

    БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ способов ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством строк ΠΈ столбцов. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° нСбольшиС, Π½ΠΎ Ρ…ΠΈΡ‚Ρ€Ρ‹Π΅ ΡƒΠ»ΠΎΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚.
    : ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ списка, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° * ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… способов.

    Method 0: 2 list comprehensions

    Python3

    rows = 3

    cols = 2

    Β 

    mat = [[ 0 для _ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Cols)] для _ Π² Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Rows)]

    PRINT (F 'MATRIX OT DIMENCE {ROS {ROW; ROW {ROW {ROW {ROW {ROW {ROW {ROW {ROW; ROW {ROW; ROW {ROW; ROW; ROW; ROWS; ROW stress straix {ROW straix; ROWS {ROW stression; row; row stression {row stression; ' )

    Β 

    mat[ 0 ][ 0 ], mat[ 0 ][ 1 ] = 1 , 2

    ΠΌΠ°Ρ‚[ 1 ][ 0 ], mat[ 1 ][ 1 ] = 3 , 4

    mat[ 2 ][ 0 ], mat[ 2 ][ 1 ] = 5 , 6

    print (f ' модифицированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° {mat}' )

    Β 

    print (f 'addr(mat[0][0]) = {id(mat[0][0])}, addr(mat[0][1]) = {id(mat[0][1])}' )

    print (f 'addr(mat[1][0]) = {id(mat[1][0] )}, addr(mat[1][1]) = {id(mat[1][1])}' )

    print (f 'addr(mat[2][0 ]) = {id(mat[2][0])}, addr(mat[2][1]) = {id(mat[2][1])}' )

    Π’Ρ‹Ρ…ΠΎΠ΄

     ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° размСрности 3 x 2 Ρ€Π°Π²Π½Π° [[0, 0], [0, 0], [0, 0]]
    модифицированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° [[1, 2], [3, 4], [5, 6]]
    адрСс (ΠΌΠ°Ρ‚ [0] [0]) = 11094304, адрСс (ΠΌΠ°Ρ‚ [0] [1]) = 11094336
    адрСс (ΠΌΠ°Ρ‚ [1] [0]) = 11094368, адрСс (ΠΌΠ°Ρ‚ [1] [1]) = 11094400
    адрСс (ΠΌΠ°Ρ‚ [2] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [2] [1]) = 11094464
     

    ΠœΠ΅Ρ‚ΠΎΠ΄ 1: 1 ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ списка Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈ 1 опСрация объСдинСния снаруТи0062 = 3

    cols = 2

    Β 

    mat = [[ 0 for _ in range (cols )]] * rows

    print (f 'matrix with dimension {rows} x {cols} is {mat}' )

    Β 

    mat[ 0 ][ 0 ], mat[ 0 ][ 1 ] = 1 , 2

    mat[ 1 ][ 0 ], MAT [ 1 ] [ 1 ] = 3 , 4 7662 , 4 7662 , 4 7662 . ], ΠΌΠ°Ρ‚ΠΎΠ²Ρ‹ΠΉ[ 2 ] [ 1 ] = 5 , 6

    ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ (F 'Modied . print (f 'addr(mat[0][0]) = {id(mat[0][0])}, addr(mat[0][1]) = {id(mat[0] [1])}' )

    print (f 'addr(mat[1][0]) = {id(mat[1][0])}, addr(mat[1 ][1]) = {id(mat[1][1])}' )

    print (f 'addr(mat[2][0]) = {id(mat[2][0])}, addr(mat[2][1]) = {id(mat[2][1])}' )

    Выходная

     ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 3 x 2 Ρ€Π°Π²Π½Π° [[0, 0], [0, 0], [0 , 0]]
    модифицированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° [[5, 6], [5, 6], [5, 6]]
    адрСс (ΠΌΠ°Ρ‚ [0] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [0] [1]) = 11094464
    адрСс (ΠΌΠ°Ρ‚ [1] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [1] [1]) = 11094464
    адрСс (ΠΌΠ°Ρ‚ [2] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [2] [1]) = 11094464
     

    Method 2: 1 list comprehension Β outside and Β 1 concatenation operation inside

    Python3

    rows = 3

    cols = 2

    Β 

    MAT = [[ 0 ] * Cols для _ Π² . 0062 (строки)]

    ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ (F 'ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ {строки} x {Cols} IS {Mat}' )

    )

    )

    968

    ) [ 0 ], mat[ 0 ][ 1 ] = 1 , 2

    mat[ 1 ][ 0 ], ΠΌΠ°Ρ‚ΠΎΠ²Ρ‹ΠΉ[ 1 ] [ 1 ] = 3 , 4

    MAT [ 2 ] [ 2

    161

    161

    161

    161

    161 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 . 1 ] = 5 , 6

    print (f 'modified matrix is ​​{mat}' )

    Β 

    print ( f 'addr(mat[0][0]) = {id(mat[0][0])}, addr(mat[0][1]) = {id(mat[0][1]) }' )

    print (f 'addr(mat[1][0]) = {id(mat[1][0])}, addr(mat[1][1]) = {id(mat[1][1])}' )

    print (f 'addr(mat[2][0]) = {id(mat[2][0]) }, addr(mat[2][1]) = {id(mat[2][1])}' )

    Π’Ρ‹Ρ…ΠΎΠ΄

     ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3 x 2 [[ 0, 0], [0, 0], [0, 0]]
    модифицированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° [[1, 2], [3, 4], [5, 6]]
    адрСс (ΠΌΠ°Ρ‚ [0] [0]) = 11094304, адрСс(ΠΌΠ°Ρ‚[0][1]) = 11094336
    адрСс (ΠΌΠ°Ρ‚ [1] [0]) = 11094368, адрСс (ΠΌΠ°Ρ‚ [1] [1]) = 11094400
    адрСс (ΠΌΠ°Ρ‚ [2] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [2] [1]) = 11094464
     

    Method 3: 2 concatenation operations

    Python3

    rows = 3

    cols = 2

    Β 

    mat = [[ 0 ] * Cols] * строки

    ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ (F 'ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ {Rows} x {Cols} IS {Mat} ) {Rows} x {Cols} IS {MAT} ) {Rows} x {Cols} IS {MAT}' ) 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006 2 9006. 0 ][ 0 ], mat[ 0 ][ 1 ] = 1 , 2

    mat[ 1 ][ 0 ], mat[ 1 ][ 1 ] = 3 , 4

    mat[ 2 ][ 0 ], ΠœΠ°Ρ‚ [ 2 ] [ 1 ] = 5 , 6

    Print (F

    .

    Β 

    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f 'addr(mat[0][0]) = {id(mat[0][0])}, addr(mat[0][1]) = {id(mat[0][ 1])}' )

    print (f 'addr(mat[1][0]) = {id(mat[1][0])}, addr(mat[1] [1]) = {id(mat[1][1])}' )

    print (f 'addr(mat[2][0]) = {id(mat[2 ][0])}, addr(mat[2][1]) = {id(mat[2][1])}' )

    Π’Ρ‹Ρ…ΠΎΠ΄

     ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° размСрности 3 Ρ… 2 Ρ€Π°Π²Π½ΠΎ [[0, 0], [0, 0], [0, 0]]
    модифицированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° [[5, 6], [5, 6], [5, 6]]
    адрСс (ΠΌΠ°Ρ‚ [0] [0]) = 11094432, адрСс(ΠΌΠ°Ρ‚[0][1]) = 11094464
    адрСс (ΠΌΠ°Ρ‚ [1] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [1] [1]) = 11094464
    адрСс (ΠΌΠ°Ρ‚ [2] [0]) = 11094432, адрСс (ΠΌΠ°Ρ‚ [2] [1]) = 11094464
     

    Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠœΠ΅Ρ‚ΠΎΠ΄Π° 1 ΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄Π° 3 *Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹*.

    ΠœΡ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ всС строки Π² ΠΌΠ°Ρ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ присвоим ΠΈΠΌ 1,2,3,4,5,6 соотвСтствСнно. Но Π² Method1 ΠΈ Method3 всС ΠΎΠ½ΠΈ Ρ€Π°Π²Π½Ρ‹ [5,6]. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ, ΠΏΠΎ сути, mat[0],mat[1] ΠΈ mat[2] ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² ΠΈΡ… адрСса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ id Π² python. 93 возмоТности ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ понимания списка ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ я ΠΎΡΡ‚Π°Π²Π»ΡΡŽ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ для выполнСния.

    Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с numpy, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ измСнСния Ρ„ΠΎΡ€ΠΌΡ‹.

    Python3

    import numpy as np

    Β 

    rows = 3

    cols = 2

    size = Rows * COLS

    MAT = NP. Array ( 0 ] * 0 ] * 0 ] * 961 0 ].


    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python β€” Java2Blog

    Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

    • ИспользованиС списков для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
      • ИспользованиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • ИспользованиС Ρ†ΠΈΠΊΠ»Π° for для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • ИспользованиС массивов numpy для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
      • ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.array() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
      • ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.matrix() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
      • ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.reshape() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
      • ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.append() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

    Π’ ΠΌΠΈΡ€Π΅ программирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ прСдставлСны Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² строках ΠΈ столбцах. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… матСматичСских ΠΈ статистичСских опСрациях ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ свою Ρ„ΠΎΡ€ΠΌΡƒ. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° с Ρ€Π°Π²Π½Ρ‹ΠΌ количСством строк ΠΈ столбцов называСтся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы ΠΈΠ»ΠΈ списки numpy . Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python.

    ИспользованиС списков для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

    Бписок Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π°Π±ΠΎΡ€ элСмСнтов Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… позициях. Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ элСмСнты Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ спискС, ΠΈ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ нСпосрСдствСнно ΠΊ списку.

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python.

    ИспользованиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список β€” это список Π²Π½ΡƒΡ‚Ρ€ΠΈ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python.

    НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

    Β 

    m = [[4,1,2],[7,5,3],[9,6,9]]

    для i в m:

    Β Β Β Β print(i)Β Β Β Β  9000

    Π’Ρ‹Ρ…ΠΎΠ΄:

    Π’Ρ‹Ρ…ΠΎΠ΄

    [4, 1, 2]

    [7, 5, 3]

    [9, 1, 2]

    [7, 5, 3]

    [9, 1, 2]

    [7, 5, 3]

    ,Β Β  6 ,Β Β  9 ]Β Β Β Β 

    Β 

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали простой Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ распСчатывали список Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π­Ρ‚ΠΎ сдСлано ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ список Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ join() .

    Π‘ΠΌ. ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅.

    Β 

    ΠΌ = [[4,1,2],[7,5,3],[9,6,9]]

    for i in m:

    Β Β Β Β print(' '.join(str(i)))Β Β Β Β 

    Β 

    Output:

    output

    900 строку Π² ΠΎΠ΄Π½Ρƒ строку ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ.

    ИспользованиС Ρ†ΠΈΠΊΠ»Π°

    для для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» для для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python с использованиСм списков Π² Python. Если Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ список, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство Ρ€Π°Π· Π² спискС, ΠΈ ΠΎΠ½ измСнится Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.

    НапримСр,

    Β 

    [ 4 ,Β Β  1 ,Β Β  2 ]

    [ 7 ,Β Β  5 ,Β Β  3 ]

    [ 9 ,Β Β  6 ,Β Β  9 ]Β Β Β Β 

    Β 

    Β 

    m = [[4,8,9] для i в диапазонС (3)]

    для i в m:

    (

         я)))    

    Β 

    Output:

    output

    Β 

    [ 4 ,Β Β  8 ,Β Β  9 ]

    [ 4 ,Β Β  8 ,Β Β  9 ]

    [ 4 ,Β Β  8 ,Β Β  9 ]Β Β Β Β 

    Β 

    Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Π΅Ρ€Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ список ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

    БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ использования Ρ†ΠΈΠΊΠ»Π° для для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python.

    НапримСр,

    1

    2

    3

    4

    5

    6

    7

    8

    10 0003

    11

    9000 2

    для i в диапазонС (0,3):

        для j в диапазонС (0,3):

    Β Β Β Β Β Β Β Β lst. append(0)Β Β Β Β Β Β 

    Β Β Β Β m.append(lst)Β Β Β Β 

    90Β lst =

    90Β 002 0 [0Β 002] Π² m:

    Β Β Β Β print(' '.join(str(i)))Β Β Β Β 

    Β 

    Π’Ρ‹Ρ…ΠΎΠ΄:

    Π’Ρ‹Ρ…ΠΎΠ΄

    [0, 0, 0]

    [0, 0, 0]

    [0, 0, 0]

    [0, 0, 0]

    [0, 0, 0]

    [0, 0, 0]

    .

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

    • Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΄Π²Π° пустых списка. Один Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ строка, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.
    • ЗапускаСм Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ». Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» добавляСт элСмСнт Π² список lst .
    • Π’ΠΎ внСшнСм Ρ†ΠΈΠΊΠ»Π΅ lst добавляСтся ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΌΡƒ списку m Π² Π²ΠΈΠ΄Π΅ строки.
    • Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ lst ΠΊΠ°ΠΊ пустой список, ΠΈ Ρ†ΠΈΠΊΠ» повторяСтся снова для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки.

    Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ просто Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ элСмСнта Π² список lst .

    ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ список, рассмотрСнный Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² массив numpy с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy.array() ΠΈΠ»ΠΈ numpy.matrix() . Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π½ΠΈΠΆΠ΅.

    ИспользованиС массивов

    numpy для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

    Массив numpy ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Π½Π°Π±ΠΎΡ€Π° элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Однако ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ нСпосрСдствСнно ΠΊ массиву, ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ эффСктивно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ считаСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ numpy массивы для ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² Python.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ обсудим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python с использованиСм массивов numpy .

    ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

    numpy.array() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив numpy с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numpy. array() Π² Python.

    НапримСр,

    1

    2

    3

    4

    5

    6

    Β 

    ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ numpy ΠΊΠ°ΠΊ np

    m = np.array([[4,1,2],[7,5,3],[9,6,9]])

    print("ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° : \n", m)

    print("Dimensions: \n", m.shape)Β Β Β Β 

    Β 

    Output:

    output

    1

    2

    3

    4

    5

    6

    7

    8

    Β 

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°:

    [[4 1 2]

    [7 5 3]

    [9 6 9]]

    Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:

    (3, 3)Β Β Β Β 

    Β 

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° Python. ΠœΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ это, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ² Ρ„ΠΎΡ€ΠΌΡƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, которая ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с 3 столбцами ΠΈ 3 строками.

    ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

    numpy. matrix() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

    Ѐункция numpy.matrix() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ numpy.array() функция, ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π²ΡˆΠ°ΡΡΡ Ρ€Π°Π½Π΅Π΅.

    НапримСр,

    1

    2

    3

    4

    5

    6

    Π˜ΠΌΠΏΠΎΡ€Ρ‚ Numpy As NP

    . ,2],[7,5,3],[9,6,9]])

    print("ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°: \n", m)

    print("Π Π°Π·ΠΌΠ΅Ρ€Ρ‹: \n", m.shape)Β Β Β Β Β Β Β Β 

    Β 

    Π’Ρ‹Π²ΠΎΠ΄:

    Π²Ρ‹Π²ΠΎΠ΄

    [40003 9062 [4 1000 2

    . ]

    [9 6 9]]

    Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:

    (3, 3)

    1

    2

    3

    4

    5

    6

    7

    8

    MATRIX:

    ИспользованиС

    Numpy. Reshape () Ѐункция для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python 9142

    111111111111111111111111111111111111111111111111111111111111111111111111111111111. . () Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python. Π­Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для измСнСния Ρ„ΠΎΡ€ΠΌΡ‹ массива. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π±Π΅Π· измСнСния Π΅Π³ΠΎ элСмСнтов.

    Π‘ΠΌ. ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄.

    1

    2

    3

    4

    5

    6

    Π˜ΠΌΠΏΠΎΡ€Ρ‚ Numpy as NP

    M = NP.Array (4,1,1,1,1,1,1,1,10002 5,3,9,6,9]]).reshape(3,3)

    print("ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°: \n", m)

    print("Π Π°Π·ΠΌΠ΅Ρ€Ρ‹: \n", m.shape)Β Β Β Β 

    Β 

    Π’Ρ‹Ρ…ΠΎΠ΄:

    Π’Ρ‹Ρ…ΠΎΠ΄

    1

    2

    3

    4

    5

    6

    7

    8

    ΠœΠ°Ρ‚Ρ€ΠΈΠΊΡ:

    [[4 1 2]

    [7 5 3]

    [9

    [9 2]

    [7 5 3]

    [9

    [[4 1 2]

    [7 5 3]

    [9

    [[4 1 2]

    [7 5 3]

    ]]

    Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:

    (3, 3)Β Β Β Β 

    Β 

    Π”Π°Π²Π°ΠΉΡ‚Π΅ обсудим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

    • Π£ нас Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, состоящий всСго ΠΈΠ· дСвяти элСмСнтов.
    • Ѐункция reshape() ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° это Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с Ρ„ΠΎΡ€ΠΌΠΎΠΉ (3,3) .
    • ВсС элСмСнты Π±Ρ‹Π»ΠΈ располоТСны Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ с 3 строками ΠΈ 3 столбцами.

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТны с количСством элСмСнтов Π² массивС ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ„ΠΎΡ€ΠΌΡ‹ (3,3) Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ 9 элСмСнтов, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС Π½Π΅ Ρ€Π°Π²Π½ΠΎ 9.

    ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

    numpy.append() для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ numpy.append() 9Ѐункция 0062 для создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива. ΠœΡ‹ достигаСм этого ΠΏΡƒΡ‚Π΅ΠΌ добавлСния строк Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ массив.

    Π‘ΠΌ. ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅.

    1

    2

    3

    4

    5

    6

    7

    Π˜ΠΌΠΏΠΎΡ€Ρ‚ Numpy As NP

    M = NP. ARRAY ]])

    Π½ΠΎΠ²Ρ‹ΠΉ = np.append(m,[[7,5,3],[9,6,9]], ось = 0)

    print("ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°: \n", Π½ΠΎΠ²Ρ‹ΠΉ)

    print("Dimensions: \n", new.shape)

    Β 

    Output:

    output

    1

    2

    3

    4

    5

    6

    7

    8

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°:

    [[4 1 2]

    [7 5 3]

    [9 6 9]]

    Π Π°Π·ΠΌΠ΅Ρ€Ρ‹:

    (3, 3)

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

    • Π£ нас Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ m , содСрТащий Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности Ρ‚Ρ€ΠΈ элСмСнта.
    • ΠœΡ‹ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ append() , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Π΄Π²Π΅ строки Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ массив ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ new .
    • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ оси ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ 0 Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ append() , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² Π²ΠΈΠ΄Π΅ строк.