Метод Numpy linalg matrix_rank() используется для вычисления ранга данной матрицы с использованием метода SVD.
Что такое функция Numpy linalg matrix_rank()?
Функция Numpy linalg matrix_rank() возвращает ранг матрицы массива с помощью метода SVD. Метод matrix_rank() вычисляется по количеству сингулярных значений Matrix, превышающих tol.
Синтаксис
|
1 |
numpy.linalg.matrix_rank(array, tol) |
Параметры
Функция matrix_rank() принимает в основном два параметра:
- Array: это массив, ранг которого мы хотим найти.
- tol: порог, ниже которого значения SVD считаются нулевыми. Если tol равно None, S — это массив с сингулярными значениями для M, а eps — это значение эпсилон для типа данных S, тогда tol устанавливается равным S.max() * max(M.shape) * eps.
Примечания
Предел по умолчанию для обнаружения ранговых ошибок составляет m. K — это тест на величину отдельных значений. По умолчанию мы нашли значения smasher ниже, чем s.max() * max(mHap) * EPS. .
Этот диапазон по умолчанию предназначен для обнаружения уменьшения ранга с учетом числовых ошибок вычисления SVD. Держите столбец M в M, который является точной комбинацией (с плавающей запятой) других столбцов в M. Вычисление SVD на M обычно не дает единственного значения, равного 0: наименьшее значение SVD.
Любое отличие от 0 из-за численных нарушений в расчете SVD. Наш диапазон для малых значений SVD учитывает это числовое возмущение, а пороговое значение по умолчанию распознает отсутствие такого числового ранга. Хотя линейная комбинация некоторых столбцов М не равна второму столбцу М, хотя численно очень близка ко второму столбцу М, входная матрица М может декларировать понижение ранга.
Мы выбрали ограничение по умолчанию, потому что оно широко используется. Возможны другие ограничения. Например, в версии 2007 года consonant имеет необязательный массив smacks() * np.info(M.dtype) в другом месте .eps/2. * np.sqrt(m + n + 1.). Авторы описывают это ограничение на основе «ошибки округления».
Вычисления SVD имеют вышеуказанные ограничения, связанные с ошибкой округления с плавающей запятой. Однако у вас может быть больше информации о происхождении ошибки в M, которая учитывает другие значения допуска для определения эффективной ошибки ранга.
Возвращаемое значение
Функция matrix_rank() возвращает целочисленное значение, обозначающее ранг данной Матрицы.

Расчет ранга одномерной матрицы
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 |
# Programming example to find matrix rank of the 1D matrix from numpy import linalg as LA import numpy as np arr1 = np.array([4, 5, 0, 1]) print("Matrix rank of the 1st array is: ", LA.matrix_rank(arr1, 0)) arr2 = np.array(np.zeros(4)) print("The Matrix is: ", arr2) print("Matrix rank of the 2nd array is: ", LA.matrix_rank(arr2, 0)) |
Вывод:
|
1 2 3 |
Matrix rank of the 1st array is: 1 The Matrix is: [0. 0. 0. 0.] Matrix rank of the 2nd array is: 0 |
Объяснение.
В этой программе мы сначала импортировали numpy и numpy.linalg для вычисления ранга матрицы.
Мы объявили два одномерных массива, а затем передали значение tol при вызове функции matrix_rank(). Мы получили ранг матрицы в соответствии с заданным значением.
Matrix rank 2D-матрицы
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 |
# Programming example to find matrix rank of 3D matrix from numpy import linalg as LA import numpy as np arr1 = np.array([[1, 2, 3], [6, 5, 4]]) print("The arr1 is :\n", arr1) print("Matrix Rank is:\n", LA.matrix_rank(arr1, 1)) arr2 = np.array(np.zeros((4, 4))) print("Arr2 is: \n: ", arr2) print("Matrix Rank is:\n", LA.matrix_rank(arr2, 2)) |
Вывод:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
The arr1 is : [[1 2 3] [6 5 4]] Matrix Rank is: 2 Arr2 is: : [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] Matrix Rank is: 0 |
Объяснение.
В этой программе мы сначала импортировали numpy и numpy.linalg для вычисления ранга матрицы.
Мы объявили два 2D-массива, а затем передали значение tol при вызове функции matrix_rank(). Мы получили ранг матрицы в соответствии с переданным значением.
