Я пытаюсь понять, как создать матричную аппроксимацию более низкого ранга, используя numpy. Я создал 2-D массив в numpy, а также SVD для этой матрицы. Но сейчас мне интересно, как бы я go решил создать аппроксимацию для экземпляра ранга 2 этой матрицы. Если я правильно понимаю, все, что может повлечь за собой изменение массива Sigma SVD, чтобы содержать только 2 самых больших числа? И поскольку он уже упорядочен, это повлечет за собой обнуление всех остальных столбцов, кроме первых 2?
Например, если бы мои массивы были такими
#This is my 2-D array which holds my original values
listA
#This is the SVD of this list
listSVD = np.linalg.svd(listA)
u, s, v = listSVD
Было бы это сейчас в основном может быть, что наше приближение ранга 2 этого будет включать обнуление всех столбцов после второго столбца в s, и это будет наше приближение?