Обработка двумерных массивов (матриц). Двумерные массивы являются аналогами матриц и имеют «прямоугольную» (табличную) структуру. Описываются массивы так же, как одномерные. Разница состоит в том, что у элемента двумерного массива две координаты (два индекса) — номер строки и номер столбца, в которых находится элемент.
Ввод массива осуществляется построчно при помощи двух циклов. Пусть M — количество столбцов, N — количество строк. Элементы массива обозначим как mas[i,j], первый индекс — номер строки, второй — номер столбца.
ввод M,N
нц для i от 1 до N
нц для j от 1 до M
ввод mas[i,j]
кц кц Вывод массива на экран осуществляется при помощи аналогичных циклов.
нц для i от 1 до N
нц для j от 1 до M
вывод mas[i,j]
кц вывод кц Здесь «пустой» оператор вывода обеспечивает переход на новую строку.
В Python для работы с многомерными (когда используется два и более индексов) массивами можно использовать вложенные списки (списки списков, списки списков списков и т.д.).
Однако Python предоставляет более удобный инструмент создания и преобразования многомерных массивов — библиотеку numpy (Numeric Python).
Создание двумерного массива в Python может выглядеть так:
# * coding: utf8 *
# import numpy
n=input('Количество строк: ') m=input('Количество столбцов: ') # Создаём ''нулевую'' матрицу a=numpy.zeros([n1,m1]) # Заполняем матрицу for i in range(n1): for j in range(m1):
print 'Элемент матрицы [',i,'][',j,']'
a[i,j]=input('Введите элемент: ')
#
Сначала с помощью функции (метода) numpy.zeros() создаётся двумерный массив (матрица), заполненный нулями, а потом вместо нулей подставляются реальные значения. Индексы элементов, так же как в строках, кортежах и списках, начинаются с 0 (первый — верхний левый — элемент матрицы в Python имеет индекс [0,0]).
Оператор print выводит индексы очередного элемента матрицы, который нужно ввести.
Задача 1. Выполнить обработку элементов прямоугольной матрицы А, имеющей N строк и М столбцов. Найти среднее арифметическое элементов массива.
Постановка задачи: Дано:
n – количество строк в массиве; m – количество столбцов в массиве; A(i,j) – элемент массива; i , j индексы элемента массива.
Найти:
S– сумма элементов массива (сумма всех A(i,j) при всех i и j)
K – количество элементов в массиве (K=m*n)
С – среднее арифметическое элементов массива (C=S/K)
Блоксхема алгоритма решения показана на рис. 15.
Рисунок 15. Блоксхема алгоритма вычисления среднего значения матрицы
Текст программы на «псевдоязыке»: