π ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ python | ΠΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ numpy.diag
. ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
diagonal = np.diag(matrix)
print(diagonal)
ΠΡΠ²ΠΎΠ΄:
[1 5 9]
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² Python
ΠΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ - ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΎΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° Π΄ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°. Π Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠ΅ΡΠΎΠ΄ numpy.diagonal()
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° NumPy ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ numpy.diagonal()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ NumPy ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
import numpy as np
ΠΠ°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ numpy.diagonal()
Π΄Π»Ρ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΡΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ:
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
diagonal = np.diagonal(matrix)
print(diagonal)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ 3x3 ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ numpy.diagonal()
. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΡΡ
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ - ΡΡΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π° Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΡΡ. ΠΡΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ (ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΡΠΎΠΊΠΈ ΡΠ°Π²Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΡΠΎΠ»Π±ΡΠ°), ΡΠΎ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
diagonal = []
for i in range(len(matrix)):
for j in range(len(matrix[i])):
if i == j:
diagonal.append(matrix[i][j])
print(diagonal)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ 3x3 ΠΈ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠΎ Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ
Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ² for
. ΠΡΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ diagonal
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ diagonal
Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΡΠ΅Π·Ρ
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΡΠ΅Π·ΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π·Ρ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈΠ· ΠΌΠ°ΡΡΠΈΡΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
diagonal = [matrix[i][i] for i in range(len(matrix))]
print(diagonal)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ 3x3 ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΡΠ΅Π·ΠΎΠ² ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ matrix[i][i]
Π² ΡΠΏΠΈΡΠΎΠΊ diagonal
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ diagonal
.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° Π½Π°ΠΉΡΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² Python: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° numpy.diagonal()
ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ NumPy, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΡΡ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΡΠ΅Π·ΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ
ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.