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

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΈ массивы NumPy Π² Python

0 ∞ 1

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

Π­Ρ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° являСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Ρ‚Ρ€ΠΈ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° состоит ΠΈΠ· 3 строк ΠΈ 4 столбцов.

  • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
  • NumPy массивы Π² Python
  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив NumPy?
    • Массив Ρ†Π΅Π»Ρ‹Ρ… чисСл, чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ составных чисСл
    • Массив Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†
    • ИспользованиС arange() ΠΈ shape()
  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ
    • Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ»ΠΈ сумма элСмСнтов массива Python
    • Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Python
    • ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΈΡ‚ΠΎΠ½
  • Доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, строкам ΠΈ столбца
    • Доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • Доступ ΠΊ строкам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • Доступ ΠΊ столбцам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

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

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

Π­Ρ‚ΠΎΡ‚ список являСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Π½Π° 2 строки ΠΈ 3 столбца.

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

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

A = [[1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]]
print("A =", A) 
print("A[1] =", A[1])      # вторая строка
print("A[1][2] =", A[1][2])   # Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки
print("A[0][-1] =", A[0][-1])   # послСдний элСмСнт ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки
column = [];        # пустой список
for row in A:
  column.append(row[2])   
print("3rd column =", column)

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

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

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

  • ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ: Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ NumPy Python?
  • Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Windows, скачайтС ΠΈ установитС дистрибутив anaconda Python. Он поставляСтся вмСстС с NumPy ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ.

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

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

import numpy as np
a = np.array([1, 2, 3])
print(a)               # Π’Ρ‹Π²ΠΎΠ΄: [1, 2, 3]
print(type(a))         # Π’Ρ‹Π²ΠΎΠ΄: <class 'numpy.ndarray'>

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

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

import numpy as np
A = np.array([[1, 2, 3], [3, 4, 5]])
print(A)
A = np.array([[1.1, 2, 3], [3, 4, 5]]) # Массив чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой
print(A)
A = np. array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив составных чисСл
print(A)

Когда Π²Ρ‹ запуститС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

[[1 2 3]
 [3 4 5]]
[[1.1 2. 3.]
 [3. 4. 5.]]
[[1. + 0.j 2. + 0.j 3. + 0.j]
 [3. + 0.j 4. + 0.j 5. + 0.j]]
import numpy as np
zeors_array = np.zeros( (2, 3) )
print(zeors_array)
'''
 Π’Ρ‹Π²ΠΎΠ΄:
 [[0. 0. 0.]
  [0. 0. 0.]]
'''
ones_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.

import numpy as np
A = np.arange(4)
print('A =', A)
B = np.arange(12).reshape(2, 6)
print('B =', B)
''' 
Π’Ρ‹Π²ΠΎΠ΄:
A = [0 1 2 3]
B = [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
'''

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

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ слоТСниС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ транспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠœΡ‹ использовали Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рассмотрим, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив NumPy.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ +, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† NumPy.

import numpy as np
A = np.array([[2, 4], [5, -6]])
B = np.array([[9, -3], [3, 6]])
C = A + B      # слоТСниС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов
print(C)
''' 
Π’Ρ‹Π²ΠΎΠ΄:
[[11  1]
 [ 8  0]]
 '''

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

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

import numpy as np
A = np.array([[3, 6, 7], [5, -3, 0]])
B = np.array([[1, 1], [2, 1], [3, -3]])
C = a.dot(B)
print(C)
''' 
Π’Ρ‹Π²ΠΎΠ΄:
[[ 36 -12]
 [ -1   2]]
'''

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

import numpy as np
A = np.array([[1, 1], [2, 1], [3, -3]])
print(A.transpose())
''' 
Π’Ρ‹Π²ΠΎΠ΄:
[[ 1  2  3]
 [ 1  1 -3]]
'''

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, NumPy Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростил Π½Π°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ.

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

import numpy as np
A = np.array([2, 4, 6, 8, 10])
print("A[0] =", A[0])     # ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт     
print("A[2] =", A[2])     # Π’Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт     
print("A[-1] =", A[-1])   # ПослСдний элСмСнт     

Когда Π²Ρ‹ запуститС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

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

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

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

A [0] [0] = 1
A [1] [2] = 9
A [-1] [- 1] = 19
import numpy as np
A = np. array([[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]) # ПослСдняя строка (Ρ‚Ρ€Π΅Ρ‚ΡŒΡ строка Π² Π΄Π°Π½Π½ΠΎΠΌ случаС)

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

A [0] = [1, 4, 5, 12]
A [2] = [-6, 7, 11, 19]
A [-1] = [-6, 7, 11, 19]
import numpy as np
A = np.array([[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]) # ПослСдний столбСц (Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ столбСц Π² Π΄Π°Π½Π½ΠΎΠΌ случаС)

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» Β«Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹Β».

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива NumPy Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ списка. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import numpy as np
letters = 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]

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

import numpy as np
A = np.array([[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 для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°Π΄ΠΈΠΌ Π”Π²ΠΎΡ€Π½ΠΈΠΊΠΎΠ²Π°Π²Ρ‚ΠΎΡ€-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Python Matrices and NumPy ArraysΒ»

Π”Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² коммСнтариях. Π—Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ, подписки Π½ΠΈΠ·ΠΊΠΈΠΉ Π²Π°ΠΌ ΠΏΠΎΠΊΠ»ΠΎΠ½!

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΈ массивы NumPy Π² Python

2023-03-19 0 ∞ 1

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

Π­Ρ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° являСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Ρ‚Ρ€ΠΈ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° состоит ΠΈΠ· 3 строк ΠΈ 4 столбцов.

  • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python
  • NumPy массивы Π² Python
  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив NumPy?
    • Массив Ρ†Π΅Π»Ρ‹Ρ… чисСл, чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ составных чисСл
    • Массив Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†
    • ИспользованиС arange() ΠΈ shape()
  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ
    • Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ»ΠΈ сумма элСмСнтов массива Python
    • Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Python
    • ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΈΡ‚ΠΎΠ½
  • Доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, строкам ΠΈ столбца
    • Доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • Доступ ΠΊ строкам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
    • Доступ ΠΊ столбцам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

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

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

Π­Ρ‚ΠΎΡ‚ список являСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Π½Π° 2 строки ΠΈ 3 столбца.

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

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

A = [[1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]]
print("A =", A) 
print("A[1] =", A[1])      # вторая строка
print("A[1][2] =", A[1][2])   # Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки
print("A[0][-1] =", A[0][-1])   # послСдний элСмСнт ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки
column = [];        # пустой список
for row in A:
  column.append(row[2])   
print("3rd column =", column)

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

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

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

  • ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ: Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ NumPy Python?
  • Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Windows, скачайтС ΠΈ установитС дистрибутив anaconda Python. Он поставляСтся вмСстС с NumPy ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ.

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

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

import numpy as np
a = np.array([1, 2, 3])
print(a)               # Π’Ρ‹Π²ΠΎΠ΄: [1, 2, 3]
print(type(a))         # Π’Ρ‹Π²ΠΎΠ΄: <class 'numpy.ndarray'>

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

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

import numpy as np
A = np.array([[1, 2, 3], [3, 4, 5]])
print(A)
A = np.array([[1.1, 2, 3], [3, 4, 5]]) # Массив чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой
print(A)
A = np. array([[1, 2, 3], [3, 4, 5]], dtype = complex) # Массив составных чисСл
print(A)

Когда Π²Ρ‹ запуститС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

[[1 2 3]
 [3 4 5]]
[[1.1 2. 3.]
 [3. 4. 5.]]
[[1. + 0.j 2. + 0.j 3. + 0.j]
 [3. + 0.j 4. + 0.j 5. + 0.j]]
import numpy as np
zeors_array = np.zeros( (2, 3) )
print(zeors_array)
'''
 Π’Ρ‹Π²ΠΎΠ΄:
 [[0. 0. 0.]
  [0. 0. 0.]]
'''
ones_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.

import numpy as np
A = np.arange(4)
print('A =', A)
B = np.arange(12).reshape(2, 6)
print('B =', B)
''' 
Π’Ρ‹Π²ΠΎΠ΄:
A = [0 1 2 3]
B = [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
'''

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

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

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ +, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† NumPy.

import numpy as np
A = np.array([[2, 4], [5, -6]])
B = np.array([[9, -3], [3, 6]])
C = A + B      # слоТСниС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов
print(C)
''' 
Π’Ρ‹Π²ΠΎΠ΄:
[[11  1]
 [ 8  0]]
 '''

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

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

import numpy as np
A = np.array([[3, 6, 7], [5, -3, 0]])
B = np.array([[1, 1], [2, 1], [3, -3]])
C = a.dot(B)
print(C)
''' 
Π’Ρ‹Π²ΠΎΠ΄:
[[ 36 -12]
 [ -1   2]]
'''

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

import numpy as np
A = np.array([[1, 1], [2, 1], [3, -3]])
print(A.transpose())
''' 
Π’Ρ‹Π²ΠΎΠ΄:
[[ 1  2  3]
 [ 1  1 -3]]
'''

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, NumPy Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростил Π½Π°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ.

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

import numpy as np
A = np.array([2, 4, 6, 8, 10])
print("A[0] =", A[0])     # ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт     
print("A[2] =", A[2])     # Π’Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт     
print("A[-1] =", A[-1])   # ПослСдний элСмСнт     

Когда Π²Ρ‹ запуститС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

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

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

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

A [0] [0] = 1
A [1] [2] = 9
A [-1] [- 1] = 19
import numpy as np
A = np. array([[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]) # ПослСдняя строка (Ρ‚Ρ€Π΅Ρ‚ΡŒΡ строка Π² Π΄Π°Π½Π½ΠΎΠΌ случаС)

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

A [0] = [1, 4, 5, 12]
A [2] = [-6, 7, 11, 19]
A [-1] = [-6, 7, 11, 19]
import numpy as np
A = np.array([[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]) # ПослСдний столбСц (Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ столбСц Π² Π΄Π°Π½Π½ΠΎΠΌ случаС)

Когда ΠΌΡ‹ запустим эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

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

Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» Β«Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹Β».

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива NumPy Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ списка. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import numpy as np
letters = 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]

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

import numpy as np
A = np.array([[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 для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°Π΄ΠΈΠΌ Π”Π²ΠΎΡ€Π½ΠΈΠΊΠΎΠ²Π°Π²Ρ‚ΠΎΡ€-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Python Matrices and NumPy ArraysΒ»

Π”Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² коммСнтариях. Π—Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ, подписки Π½ΠΈΠ·ΠΊΠΈΠΉ Π²Π°ΠΌ ΠΏΠΎΠΊΠ»ΠΎΠ½!

Python β€” ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” GeeksforGeeks

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ обсудим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы формирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. Π’ этом руководствС ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ обсудим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим внСшний ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Numpy для формирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Python.

 

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

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° прСдставляСт собой Π½Π°Π±ΠΎΡ€ чисСл, располоТСнных Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ массива Π² строках ΠΈ столбцах. Π’ области Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Ρ„ΠΈΠ·ΠΈΠΊΠΈ, статистики ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для выраТСния ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ² изобраТСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.
ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° m Π½Π° n ΠΈ обозначаСтся символом Β«m x nΒ» , Ссли имССтся m строк ΠΈ n столбцов.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ простой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм Python

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ со списком ΠΈΠ· списков

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ собираСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с использованиСм списка списков.

Python3

ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° = [[ 1 , 900 26 2 , 3 , 4 ],

     [ 5 , 9002 6 6 , 7 , 8 ],

     [ 9 , 10 , 11 , 12 ]]

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "Matrix =" , ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°)

Π’Ρ‹Ρ…ΠΎΠ΄:

 ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] 
9001 5 Бпособ 2 : ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Python

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ ряд строк ΠΈ столбцов ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

Python3

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = int ( Π²Π²ΠΎΠ΄ 9002 6 ( "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк:" ))

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† = int ( Π²Π²ΠΎΠ΄ ( "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов:" 9 0027 ))

 

ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° = [ ]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ записи построчно:" )

 

для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (ряд):   

     a = []

    

     for column in range (Column):  

         a. append( int ( input ()))

     matrix.append(a)

 

для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (ряд):

     для столбСц Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†):

         ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°[строка][столбСц], ΠΊΠΎΠ½Π΅Ρ† = "" )

     ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ()

Π’Ρ‹Π²ΠΎΠ΄:

 Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк:2
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов: 2
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ записи построчно:
5
6
7
8
5 6
7 8 

ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: O(n*n)
Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство: O(n*n)

ΠœΠ΅Ρ‚ΠΎΠ΄ 3.

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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ списка β€” это элСгантный способ опрСдСлСния ΠΈ создания списка Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ 4 строк ΠΈ 4 столбцов.

Python3

ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° = [[столбСц для столбСц 90 026 Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ( 4 )] для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( 4 )]

9 0002  

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°)

Π’Ρ‹Π²ΠΎΠ΄:

 [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]] 

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ значСния Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

Бпособ 1: ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ замСняСм ΠΈ присваиваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС (1 строка ΠΈ 1 столбСц = 11) Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

Python3

X = [[ 1 , 9002 6 2 , 3 , [ 4 , 5 , 6 ], [ 7 , 8 , 9 ]] 9 0003

 

строка = столбСц = 1

 

X[строка][столбСц] = 11

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (X)

Π’Ρ‹Π²ΠΎΠ΄:

 [[1, 2, 3 ], [4,  11  , 6], [7, 8, 9]] 

Бпособ 2.

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ значСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС с использованиСм ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ индСксирования Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ замСняСм ΠΈ присваиваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС (-2 строки ΠΈ -1 столбца = 21) Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

Python3

строка = - 2

столбСц = 9 0027 - 1

 

X[строка][столбСц] = 21

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (X)

Π’Ρ‹Π²ΠΎΠ΄:

 [[1, 2, 3], [4, 5,  21  ], [7, 8, 9 ]] 

Доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: доступ ΠΊ значСниям ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, пСрСдавая Π΅Π΅ строку ΠΈ столбСц.

Python3

print ( Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² 1 строкС ΠΈ 3 столбцах =Β» , X[ 0 ][ 2 ])

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² 3 строки ΠΈ 3 столбца=" , X[ 2 ][ 2 ])

Π’Ρ‹Π²ΠΎΠ΄:

 ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² 1 строкС ΠΈ 3 столбцах = 3
ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° с 3 строками ΠΈ 3 столбцами = 9 

ΠœΠ΅Ρ‚ΠΎΠ΄ 2: доступ ΠΊ значСниям ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ индСксации

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ доступ ΠΊ элСмСнтам ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, пСрСдавая Π΅Π΅ строку ΠΈ столбСц с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ индСксациСй.

Python3

ΠΈΠΌΠΏΠΎΡ€Ρ‚ numpy as np

X = [[ 1 , 2 , 3 ], [ 4 900 26, 5 , 6 ], [ 7 , 8 , 9 ]]

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (X[ 9002 6 β€” 1 ][ - 2 ])

Π’Ρ‹Π²ΠΎΠ΄:

 8 

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Π² Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for Π² Python

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ добавляСм Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for Π² Python.

Python3

X = [[ 1 , 900 26 2 , 3 ,[ 4 , 5 , 6 ], [ 7 , 8 , 9 ]] 90 003

Π” = [[ 9 , 8 , 7 ], [ 6 , 5 , 4 ], [ 3 , 2 , 1 ]]

 

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = [[ 0 , 0 , 0 ], [ 900 27 0 , 0 , 0 ], [ 0 , 0 , 0 ]]

 

для 900 27 ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len (X)):

    

     для столбца Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ( len (X[ 0 ])):

         Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚[строка][столбСц ] = X[строка][столбСц] + Y[строка][столбСц]

 

для r Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

     ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (r)

Π’Ρ‹Π²ΠΎΠ΄:

 [10, 10, 10]
[10, 10, 10]
[10, 10, 10] 

ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: O(n*n)
Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство: O(n*n)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ списка

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основного слоТСния ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ с использованиСм понимания списка.

Python3

9 0106

Add_result = [[X[строка][столбСц] + Y[строка][столбСц]

                для столбСц Π² 9002 6 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len (X[ 0 ]))]

               для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len (X)) ]

Sub_result = [[X[строка][столбСц] - Y[строка][столбСц]

                для столбСц Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 9002 6 ( Π»Π΅Π½ (X[ 0 ]))]

               для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len (X))]

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†" )

для r в Add_result:

     ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (r) 90 027

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\nΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅" )

for r in Sub_result:

     print (r)

Π’Ρ‹Ρ…ΠΎΠ΄:

 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹
[10, 10, 10]
[10, 10, 10]
[10, 10, 10]
ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
[-8, -6, -4]
[-2, 0, 2]
[4, 6, 8] 

ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: O(n*n)
Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство: O(n*n)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Python для умноТСния ΠΈ дСлСния Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ умноТСния ΠΈ дСлСния с использованиСм Ρ†ΠΈΠΊΠ»Π° Python.

Python3

rmatrix = [[ 0 , 0 , 0 , [ 0 , 0 , 0 ], [ 0 , 0 , 0 ]]

  90 003

для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( Π΄Π»ΠΈΠ½Π° (X )):

     для столбСц Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len 9002 6 (X[ 0 ])):

         rmatrix[row][ столбСц] = X[строка][столбСц] * Y[строка][столбСц]

          

900 26 ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅" ,)

для r in rmatrix:

     ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (r)

9 0026           

для i в диапазон ( len (X)):

     для j Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 9002 7 ( Π»Π΅Π½ (X[ 0 ])):

         rmatrix[строка][столбСц] = X[строка][столбСц] / / Y[строка][столбСц] ]

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\nΠ Π°Π·Π΄Π΅Π» ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹" ,)  

для r в rmatrix:

     ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (r)

Π’Ρ‹Π²ΠΎΠ΄:

 Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†
[9, 16, 21]
[24, 25, 24]
[21, 16, 9]
ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»
[0, 0, 0]
[0, 1, 1]
[2, 4, 9] 

ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: O(n*n)
Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство: O(n*n)

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Python для транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с использованиСм Ρ†ΠΈΠΊΠ»Π°

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ достигаСтся Π·Π°ΠΌΠ΅Π½ΠΎΠΉ строк Π½Π° столбцы ΠΈ столбцов Π½Π° строки. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, транспонированиС A[][] получаСтся ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½Ρ‹ A[i][j] Π½Π° A[j][i].

Python3

X = [[ 9 , 900 26 8 , 7 , [ 6 , 5 , 4 ], [ 3 , 9Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 0 , 0 , 0 ], [ 0 , 0 , 0 , 0 ]]

 

для ряд Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len (X)):

    

     для 9 0027 столбСц Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ( len (X[ 0 ]))):

         Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚[столбСц][строка] = X[строка][столбСц]

 

для r Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

     ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (r)

      

 

 

Π’Ρ‹Π²ΠΎΠ΄:

 [9, 6, 3]
[8, 5, 2]
[7, 4, 1] 

ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: O(n*n)
Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство: O(n*n)

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° с использованиСм Numpy

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

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм массив Numpy с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ numpy. random ΠΈ случайный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Python3

ΠΈΠΌΠΏΠΎΡ€Ρ‚ numpy as np

    

массив = np.random.randint( 10 , Ρ€Π°Π·ΠΌΠ΅Ρ€ = ( 3 , 3 ))

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (массив)

Π’Ρ‹Ρ…ΠΎΠ΄: 90 011

 [[2 7 5]
 [8 5 1]
 [8 4 6]] 

ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Python с использованиСм Numpy

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅, с использованиСм Numpy.

Python3

x = numpy. array([[ 1 , 90 027 2 ], [ 4 , 5 ]])

y = numpy.array([[ 7 , 8 , [ 9 , 10 ]])

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ 900 26 ( "ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ слоТСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:" )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (numpy.add(x,y))

 

print ( "ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹: " )

9 0025 ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (numpy.subtract(x, Ρƒ))

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:" )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (numpy. multiply(x,y)) 9 0027

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( Β«ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:Β» )

print (numpy.divide(x,y))

Π’Ρ‹Π²ΠΎΠ΄:

 ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ слоТСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ являСтся :
[[ 8 10]
 [13 15]]
ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:
[[-6 -6]
 [-5 -5]]
ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:
[[ 7 16]
 [36 50]]
ΠŸΠΎΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:
[[0,14285714 0,25 ]
 [0,44444444 0,5 ]] 

Π’ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅ ΠΈ пСрСкрСстноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π½Π°ΠΉΠ΄Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅, внСшнСС ΠΈ пСрСкрСстноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ NumPy Π² Python.

Python3

X = [[ 1 , 900 26 2 , 3 ,[ 4 , 5 , 6 ],[ 7 , 8 , 9 ]]

 

Y = [[ 9 , 8 , 7 ], [ 6 , 1 ]]

 

скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ = np. dot(X, Π”)

print ( "БкалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… массивов:" , скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅)

 

скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ = 90 027 np.крСст(X, Y)

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "ΠŸΠ΅Ρ€Π΅ΠΊΡ€Π΅ΡΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… массивов:" , скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅)

Π’Ρ‹Ρ…ΠΎΠ΄:

 БкалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… массивов: [[ 30 24 18]
 [ 84 69 54 ]
 [138 114 90]]
ΠŸΠ΅Ρ€Π΅ΠΊΡ€Π΅ΡΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… массивов: [[-10 20 -10]
 [-10 20 -10]
 [-10 20 -10]] 

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python с использованиСм Numpy

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ транспонирования Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ numpy.transpose().

Python3

ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° = [[ 1 , 900 26 2 , 3 , [ 4 , 5 , 6 ]]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\n" , numpy. transpose(matrix))

Π’Ρ‹Π²ΠΎΠ΄:

 [[1 4][2 5][3 6]] 

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ пустой массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ np.zeros().

Python3

a = np.zeros([ 2 , 900 27 2 ], dtype = int )

print ( "\nΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 2x2: \n" , a)

 

c = 90 027 np.zeros([ 3 , 3 ])

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\nΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 3x3: \n" , c)

90 002 Π’Ρ‹Ρ…ΠΎΠ΄:

 ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 2x2:
 [[0 0]
 [0 0]]
ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° 3x3:
 [[0.  0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]] 

НарСзка Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ с использованиСм Numpy

НарСзка β€” это процСсс Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк ΠΈ столбцов ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ создания Π½ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ удалСния всСх Π½Π΅Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… элСмСнтов. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ всю ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ 2 Π² качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса, 3 Π² качСствС послСднСго индСкса ΠΈ скачок индСкса Π² качСствС 1. Π’ΠΎ ΠΆΠ΅ самоС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ½Ρ‚Π΅, ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ индСкс ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ 2.

Python3

X = np.array([[ 6 , 8 , 10 ], 900 27

     [ 9 , - 12 , 15 ],

     [ 12 , 1 6 , 20 ],

     [ 15 , - 20 , 25 ]])

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ 90 027 (X[:])

 

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\nНарСзка Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π‘Ρ‚Ρ€ΠΎΠΊΠ°-вторая ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°: " , X [ 2 : 3 , 1 ]) 9000 3

print ( "\nНарСзка Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки β€” Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ столбца: " , Π₯[ 2 : 3 , 2 ])

9 0010 Π’Ρ‹Π²ΠΎΠ΄:

 [[ 6 8 10]
 [ 9 -12 15]
 [ 12 16 20 ]
 [ 15 -20 25]]
 Π Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки β€” Π²Ρ‚ΠΎΡ€ΠΎΠΉ столбСц: [16]
 НарСзка Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки β€” Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ столбца: [20] 

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк ΠΈ столбцов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Numpy

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ пытаСмся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ np. delete(). Π’ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ сначала ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ 0 th ряд, Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ 2 ΠΉ ряд, Π° Π·Π°Ρ‚Π΅ΠΌ 3 ΠΉ ряд.

Python3

a = np.array([[ 6 , 90 027 8 , 10 ],

     [ 9 , - 12 , 15 ],

     [ 12 , 16 , 20 ],

     [ 15 , - 20 , 25 ]] )

 

Π΄Π°Π½Π½Ρ‹Π΅ = np. delete(a, 0 , 0 900 27 )

print ( "Π΄Π°Π½Π½Ρ‹Π΅ послС 0-ΠΉ строки ΡƒΠ΄Π°Π»Π΅Π½Ρ‹:" , Π΄Π°Π½Π½Ρ‹Π΅)

 

Π΄Π°Π½Π½Ρ‹Π΅ = np.delete(a, 1 , 9002 7 0 )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\nΠ΄Π°Π½Π½Ρ‹Π΅ послС 1 строка ΡƒΠ΄Π°Π»Π΅Π½Π°: " , Π΄Π°Π½Π½Ρ‹Π΅)

 

Π΄Π°Π½Π½Ρ‹Π΅ = np.delete(a, 2 , 0 )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( "\nΠ΄Π°Π½Π½Ρ‹Π΅ послС 2-ΠΉ строки ΡƒΠ΄Π°Π»Π΅Π½Ρ‹: " , Π΄Π°Π½Π½Ρ‹Π΅)

Π’Ρ‹Π²ΠΎΠ΄:

 Π΄Π°Π½Π½Ρ‹Π΅ послС удалСния 0-ΠΉ строки:
[[ 9 -12 15]
 [ 12 16 20 ]
 [ 15 -20 25]]
Π΄Π°Π½Π½Ρ‹Π΅ послС удалСния 1-ΠΉ строки:
[[ 6 8 10]
 [ 12 16 20 ]
 [ 15 -20 25]]
Π΄Π°Π½Π½Ρ‹Π΅ послС удалСния 2-ΠΉ строки:
[[ 6 8 10]
 [ 9 -12 15]
 [ 15 -20 25]] 

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку/столбцы Π² массив Numpy

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ столбСц Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ 4 th , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ np. hstack.

Python3

ini_array = np.array([[ 6 , 8 , 10 ],

                      [ 9 , 900 27 - 12 , 15 ],

                       900 26 [ 15 , - 20 , 25 ]])

 

column_to_be_added = np.array([ 1 9002 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = np.hstack((ini_array, np.atleast_2d(column_to_be_added).T))

 

print ( "\nΡ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив\n" , стр ( Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚))

Π’Ρ‹Π²ΠΎΠ΄:

 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив
 [[ 6 8 10 1]
 [ 9 -12 15 2]
 [ 15 -20 25 3]] 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ транспонирования, умноТСния, массивов 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]]
 

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

 М1 = [[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 th β€” это [2,4,6,8,10], строка 1 st β€” это [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.array([[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 ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ массив Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ список.
  • ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½Π°Ρ опСрация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, это слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, транспонированиС, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ строк, столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ€Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Ρ‚.