Я публиковал вопрос на похожую тему и столкнулся с другим более важным вопросом.
Когда я применяю SVD к матрице 'A' (код ниже), я получаю ожидаемый двумерный собственный вектор матрицы ('U' и 'V') и неожиданный одномерный массив значений S '.
U,S,V=np.linalg.svd(A)
Для контекста. Причиной неожиданности является то, что разложение по сингулярным значениям должно приводить к произведению трех матриц. Средняя матрица (в данном случае одномерный массив) должна представлять собой диагональную матрицу, содержащую неотрицательные единичные значения в порядке убывания.
Почему Python преобразует матрицу в массив? Есть ли способ обойти это?
Спасибо!