Учебники

Питон — Матрица

Матрица — это особый случай двумерного массива, где каждый элемент данных имеет строго одинаковый размер. Таким образом, каждая матрица также является двумерным массивом, но не наоборот. Матрицы являются очень важными структурами данных для многих математических и научных расчетов. Как мы уже обсуждали структуру данных двухмерного массива в предыдущей главе, мы сосредоточимся на операциях структуры данных, специфичных для матриц в этой главе.

Мы также используем пакет numpy для манипулирования матричными данными.

Пример матрицы

Рассмотрим случай записи температуры в течение 1 недели, измеренной утром, в полдень, вечером и в полночь. Он может быть представлен в виде матрицы 7X5 с использованием массива и метода изменения формы, доступного в numpy.

from numpy import * 
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m = reshape(a,(7,5))
print(m)

Вышеуказанные данные могут быть представлены в виде двумерного массива, как показано ниже.

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]

Доступ к значениям в матрице

Доступ к элементам данных в матрице можно получить с помощью индексов. Методы доступа аналогичны способам доступа к данным в двумерном массиве.

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
# Print data for Wednesday
print(m[2])

# Print data for friday evening
print(m[4][3])

Когда приведенный выше код выполняется, он дает следующий результат —

['Wed', 15, 21, 20, 19]
23

Добавление строки

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m_r = append(m,[['Avg',12,15,13,11]],0)

print(m_r)

Когда приведенный выше код выполняется, он дает следующий результат —

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']
 ['Avg' '12' '15' '13' '11']]

Добавление столбца

Мы можем добавить столбец в матрицу, используя метод insert (). здесь мы должны упомянуть индекс, в который мы хотим добавить столбец, и массив, содержащий новые значения добавленных столбцов. В приведенном ниже примере мы добавляем новый столбец на пятой позиции с начала.

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)

print(m_c)

Когда приведенный выше код выполняется, он дает следующий результат —

[['Mon' '18' '20' '22' '17' '1']
 ['Tue' '11' '18' '21' '18' '2']
 ['Wed' '15' '21' '20' '19' '3']
 ['Thu' '11' '20' '22' '21' '4']
 ['Fri' '18' '17' '23' '22' '5']
 ['Sat' '12' '22' '20' '18' '6']
 ['Sun' '13' '15' '19' '16' '7']]

Удалить строку из матрицы

Мы можем удалить строку из матрицы, используя метод delete (). Мы должны указать индекс строки, а также значение оси, которое равно 0 для строки и 1 для столбца.

 from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m = delete(m,[2],0)

print(m)

Когда приведенный выше код выполняется, он дает следующий результат —

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]

Удалить столбец из матрицы

Мы можем удалить столбец из матрицы, используя метод delete (). Мы должны указать индекс столбца, а также значение оси, которое равно 0 для строки и 1 для столбца.

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m = delete(m,s_[2],1)

print(m)

Когда приведенный выше код выполняется, он дает следующий результат —

[['Mon' '18' '22' '17']
 ['Tue' '11' '21' '18']
 ['Wed' '15' '20' '19']
 ['Thu' '11' '22' '21']
 ['Fri' '18' '23' '22']
 ['Sat' '12' '20' '18']
 ['Sun' '13' '19' '16']]

 

Обновить строку в матрице

Чтобы обновить значения в строке матрицы, мы просто переназначаем значения в индексе строки. В приведенном ниже примере все значения для данных четверга отмечены как ноль. Индекс для этой строки 3.

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m[3] = ['Thu',0,0,0,0]

print(m)

Когда приведенный выше код выполняется, он дает следующий результат —