Python Урок 8. Матрицы (двумерный массив)

Поділитись

На уроке рассматриваются алгоритмы работы с двумерными массивами в Python: создание матрицы, инициализация элементов, вывод, обработка элементов матрицы

Создание, вывод и ввод матрицы в Питоне

  • Таким образом, получается структура из вложенных списков, количество которых определяет количество строк матрицы, а число элементов внутри каждого вложенного списка указывает на количество столбцов в исходной матрице.
  • Вывод матрицы можно осуществить одним оператором, но такой простой способ не позволяет выполнять какой-то предварительной обработки элементов:

Результат:
 

вывод матрицы

Для вывода матрицы в виде таблицы можно использовать специально заготовленную для этого процедуру:

  1. способ:
1
2
3
4
5
def printMatrix ( matrix ):
for i in range ( len(matrix) ):
for j in range ( len(matrix[i]) ):
print ( «{:4d}».format(matrix[i][j]), end = «» )
print ()
  1. 2 способ
1
2
3
4
5
def printMatrix ( matrix ):
for row in matrix:
for x in row:
print ( «{:4d}».format(x), end = «» )
print ()

Для инициализации элементов матрицы случайными числами используется алгоритм:

1
2
3
4
from random import randint n, m = 3, 3 a = [[randint(1, 10)
for j in range(m)]
for i in range(n)]
print(a)

Обработка элементов двумерного массива

Нумерация элементов двумерного массива, как и элементов одномерного массива, начинается с нуля.
Т.е. matrix[2][3] — это элемент третьей строки четвертого столбца.Пример обработки элементов матрицы:
Найти произведение элементов двумерного массива.

✍ Решение:
 

1
2
3
4
5
p = 1
for i in range(N):
for j in range(M):
p *= matrix[i][j]
print (p)

Пример:
Найти сумму элементов двумерного массива.

✍ Решение:
 Более подходящий вариант для Python:

1
2
3
4
s = 0
for row in matrix:
s += sum(row)
print (s)

Для поиска суммы существует стандартная функция sum.Задание Python 8_0:
Получены значения температуры воздуха за 4 дня с трех метеостанций, расположенных в разных регионах страны:

Номер станции1-й день2-й день3-й день4-й день
1-8-14-19-18
225282620
311182025

Т.е. запись показаний в двумерном массиве выглядела бы так:

t[0][0]=-8t[0][1]=-14t[0][2]=-19t[0][3]=-18
t[1][0]=25t[1][1]=28t[1][2]=26t[1][3]=20
t[2][0]=11t[2][1]=18t[2][2]=20t[2][3]=25
  1. Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.
  2. Распечатать показания термометров всех метеостанций за 2-й день.
  3. Определить среднюю температуру на 3-й метеостанции.
  4. Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.

Задание Python 8_1:
Написать программу поиска минимального и максимального элементов матрицы и их индексов.Задание Python 8_2:
Написать программу, выводящую на экран строку матрицы, сумма элементов которой максимальна.Для обработки элементов квадратной матрицы (размером N x N):Для элементов главной диагонали достаточно использовать один цикл:

for i in range(N): # работаем с matrix[i][i]

Для элементов побочной диагонали:

for i in range(N): # работаем с matrix[i][N-1-i]

Пример:Переставить 2-й и 4-й столбцы матрицы. Использовать два способа.

✍ Решение:
 

1.for i in range(N): 
  c = A[i][2] 
  A[i][2] = A[i][4] 
  A[i][4] = c


2.for i in range(N): 
 A[i][2], A[i][4] = A[i][4], A[i][2]

Задание Python 8_3:
Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу размерностью N. Определить:минимальный элемент, лежащий ниже побочной диагонали;произведение ненулевых элементов последней строки.


Поділитись