Я пытаюсь вычислить скалярное произведение между матрицей разбора scipy и массивом numpy.
Сначала я использовал матрицу numpy, которую вы можете увидеть в следующем коде:
def power_iteration(matrix, n):
b_k = np.random.rand(matrix.shape[1])
for _ in range(n):
b_k = np.dot(matrix, b_k)
return b_k
Здесь матрица является пустой матрицей, и ошибки не возникает.
Если вы передаете скудную разреженную матрицу в качестве параметра, возникает следующая ошибка: ValueError: shape (6762,6762) и (1,6762) не выровнен: 6762 (dim 1)! = 1 (dim 0)
Я изменил
b_k = np.random.rand(matrix.shape[1])
на
b_k = np.random.rand(matrix.shape[1], 1)
, что делает точечное произведениеработать, но не возвращает правильную форму b_k.Мне нужна форма: (6762,)
Редактировать: до сих пор я пытался изменить форму так:
b_k = np.reshape(b_k, (matrix.shape[1],))
, но это преобразует форму (6762, 1) в (1, 6762), вместо (6762,)
Есть советы?Спасибо!