Матричная библиотека 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 столбцами.

Пример
Результат вывода следующий:
原数组: [[ 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 (порядок по столбцам)
Пример
Результат вывода:
[[-1.49166815e-154 -1.49166815e-154] [ 2.17371491e-313 2.52720790e-212]]
numpy.matlib.zeros()
Функция numpy.matlib.zeros() создаёт матрицу, заполненную нулями.
Пример
Результат вывода:
[[0. 0.] [0. 0.]]
numpy.matlib.ones()
Функция numpy.matlib.ones() создаёт матрицу, заполненную единицами.
Пример
Результат вывода:
[[1. 1.] [1. 1.]]
numpy.matlib.eye()
Функция numpy.matlib.eye() возвращает матрицу, у которой диагональные элементы равны 1, а все остальные позиции равны 0.
numpy.matlib.eye(n, M,k, dtype)
Описание параметра:
- n: Количество строк возвращаемой матрицы
- M: Количество столбцов возвращаемой матрицы, по умолчанию n
- k: Индекс диагонали
- dtype: Тип данных
Пример
Результат вывода:
[[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.]]
numpy.matlib.identity()
Функция numpy.matlib.identity() возвращает единичную матрицу заданного размера.
Единичная матрица — это квадратная матрица. Элементы на диагонали от верхнего левого до нижнего правого угла (называемой главной диагональю) равны 1, а все остальные элементы равны 0.

Пример
Результат вывода:
[[ 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() создаёт матрицу заданного размера со случайно заполненными данными.
Пример
Результат вывода:
[[0.23966718 0.16147628 0.14162 ] [0.28379085 0.59934741 0.62985825] [0.99527238 0.11137883 0.41105367]]
Матрицы всегда двумерны, тогда как ndarray — это n-мерный массив. Эти два объекта взаимозаменяемы.
Пример
Результат вывода:
[[1 2] [3 4]]
Пример
Результат вывода:
[[1 2] [3 4]]
Пример
Результат вывода:
[[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в первую очередь, чтобы обеспечить лучшую совместимость и гибкость.