Матричная библиотека NumPy (Matrix)

NumPy содержит библиотеку матрицnumpy.matlib, функции в этом модуле возвращают матрицу, а не объект ndarray.

numpy.matlibЭтот модуль специально используется для создания и манипулирования матричными объектами. Хотя ядро NumPy поддерживает многомерные массивы (ndarray), numpy.matlib предоставляет некоторые удобные функции, которые специально возвращают матричные типы, что упрощает пользователям выполнение традиционных операций линейной алгебры.

Aматрица — это прямоугольный массив, упорядоченный по строкамrowsи столбцам элементов.

Элементами матрицы могут быть числа, символы или математические выражения. Ниже представлена матрица размером 2 строки и 3 столбца, состоящая из 6 числовых элементов:

Транспонированная матрица

В NumPy, помимо использования функции numpy.transpose для перестановки размерностей массива, также можно использовать атрибутT.

Например, для матрицы с m строками и n столбцами использование функции t() преобразует её в матрицу с n строками и m столбцами.

Пример

import numpy as np a = np.arange(12).reshape(3,4) print ('Исходный массив:') print (a) print ('\n') print ('Транспонированный массив:') print (a.T)

Результат вывода следующий:

原数组:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]


转置数组:
[[ 0  4  8]
 [ 1  5  9]
 [ 2  6 10]
 [ 3  7 11]]

matlib.empty()

Функция matlib.empty() возвращает новую матрицу со следующим синтаксисом:

numpy.matlib.empty(shape, dtype, order)

Описание параметра:

  • shape: целое число или кортеж целых чисел, определяющий форму новой матрицы
  • Dtype: необязательный, тип данных
  • order: C (порядок по строкам) или F (порядок по столбцам)

Пример

import numpy.matlib import numpy as np print (np.matlib.empty((2,2))) # Заполнить случайными данными

Результат вывода:

[[-1.49166815e-154 -1.49166815e-154]
 [ 2.17371491e-313  2.52720790e-212]]

numpy.matlib.zeros()

Функция numpy.matlib.zeros() создаёт матрицу, заполненную нулями.

Пример

import numpy.matlib import numpy as np print (np.matlib.zeros((2,2)))

Результат вывода:

[[0. 0.]
 [0. 0.]]

numpy.matlib.ones()

Функция numpy.matlib.ones() создаёт матрицу, заполненную единицами.

Пример

import numpy.matlib import numpy as np print (np.matlib.ones((2,2)))

Результат вывода:

[[1. 1.]
 [1. 1.]]

numpy.matlib.eye()

Функция numpy.matlib.eye() возвращает матрицу, у которой диагональные элементы равны 1, а все остальные позиции равны 0.

numpy.matlib.eye(n, M,k, dtype)

Описание параметра:

  • n: Количество строк возвращаемой матрицы
  • M: Количество столбцов возвращаемой матрицы, по умолчанию n
  • k: Индекс диагонали
  • dtype: Тип данных

Пример

import numpy.matlib import numpy as np print (np.matlib.eye(n = 3, M = 4, k = 0, dtype = float))

Результат вывода:

[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]]

numpy.matlib.identity()

Функция numpy.matlib.identity() возвращает единичную матрицу заданного размера.

Единичная матрица — это квадратная матрица. Элементы на диагонали от верхнего левого до нижнего правого угла (называемой главной диагональю) равны 1, а все остальные элементы равны 0.

Пример

import numpy.matlib import numpy as np # Размер — 5, тип — с плавающей точкой print (np.matlib.identity(5, dtype = float))

Результат вывода:

[[ 1.  0.  0.  0.  0.] 
 [ 0.  1.  0.  0.  0.] 
 [ 0.  0.  1.  0.  0.] 
 [ 0.  0.  0.  1.  0.] 
 [ 0.  0.  0.  0.  1.]]

numpy.matlib.rand()

Функция numpy.matlib.rand() создаёт матрицу заданного размера со случайно заполненными данными.

Пример

import numpy.matlib import numpy as np print (np.matlib.rand(3,3))

Результат вывода:

[[0.23966718 0.16147628 0.14162   ]
 [0.28379085 0.59934741 0.62985825]
 [0.99527238 0.11137883 0.41105367]]

Матрицы всегда двумерны, тогда как ndarray — это n-мерный массив. Эти два объекта взаимозаменяемы.

Пример

import numpy.matlib import numpy as np i = np.matrix('1,2;3,4') print (i)

Результат вывода:

[[1  2] 
 [3  4]]

Пример

import numpy.matlib import numpy as np j = np.asarray(i) print (j)

Результат вывода:

[[1  2] 
 [3  4]]

Пример

import numpy.matlib import numpy as np k = np.asmatrix (j) print (k)

Результат вывода:

[[1  2] 
 [3  4]]

Следующие функции также существуют в пространстве имён NumPy, но они возвращают объекты matrix.

Имя функции Описание параметра Описание функций
matrix(data[, dtype, copy]) data: array-like или string, dtype: тип данных, copy: нужно ли копировать Создать объект матрицы из массива или строки
asmatrix(data[, dtype]) data: входные данные, dtype: тип данных (необязательно) Преобразовать входные данные в объект матрицы
bmat(obj[, ldict, gdict]) obj: строка или вложенная последовательность, ldict, gdict: словари пространства имён (необязательно) Построить матрицу из строки, вложенной последовательности или массива
empty(shape[, dtype, order]) shape: форма, dtype: тип данных, order: порядок хранения Создать матрицу с неинициализированными элементами
zeros(shape[, dtype, order]) shape: форма, dtype: тип данных, order: порядок хранения Создать матрицу, заполненную нулями
ones(shape[, dtype, order]) shape: форма, dtype: тип данных, order: порядок хранения Создать матрицу, заполненную единицами
eye(n[, M, k, dtype, order]) n: количество строк, M: количество столбцов, k: смещение диагонали, dtype: тип данных, order: порядок хранения Создать матрицу с 1 на диагонали и 0 в остальных местах
identity(n[, dtype]) n: размер, dtype: тип данных (необязательно) Создать единичную квадратную матрицу
repmat(a, m, n) a: массив или матрица, m, n: количество повторений Повторить массив или матрицу для m строк и n столбцов
rand(args) args: Укажите форму матрицы Сгенерировать равномерно распределённую случайную матрицу указанной формы
randn(args) args: Укажите форму матрицы Сгенерировать случайную матрицу указанной формы со стандартным нормальным распределением

Примечания

  • Хотяnumpy.matlibудобен, официальная рекомендация NumPy — использоватьndarrayи@оператор для выполнения матричных операций, потому чтоmatrixу этого типа есть некоторые ограничения, и он может быть объявлен устаревшим в будущих версиях.
  • В новом коде рекомендуется использоватьndarrayв первую очередь, чтобы обеспечить лучшую совместимость и гибкость.
Другие расширения