# Расстояние косинуса между редкими матрицами -- python поле с участием matrix поле с участием sparse-matrix пол Связанный проблема

## Cosine distance between sparse matrices

0 ### проблема

русский

Я пытаюсь понять, как использовать <код> csr_matrix API вместе с его <код> cosine функционал, и я работаю в <код> dimension mismatch ,

У меня есть следующие два (3,3) матрицы:

` <код> a = scipy.sparse.csr_matrix(np.reshape(np.arange(9), (3,3))) b = scipy.sparse.csr_matrix(np.reshape(np.arange(9)*2+5, (3,3)))   `

И я хочу вычислить косинный сходство (или расстояние в косинуре) из <Код> a и <код> b a-la <код> cosine(a, b) .

Если я распечатаю размеры <код> a, b i get:

` <код> (<1x3 sparse matrix of type '<class 'numpy.int64'>'     with 2 stored elements in Compressed Sparse Row format>,  <1x3 sparse matrix of type '<class 'numpy.int64'>'     with 3 stored elements in Compressed Sparse Row format>)   `

Так что их размерные матчи. Но пытаясь <код> cosine(a, b) приводит к результатам <код> cosine0 . Любые идеи почему?

Английский оригинал

I'm trying to understand how to use the `csr_matrix` API along with its `cosine` functionality, and I'm running into `dimension mismatch` issues.

I have the following two (3,3) matrices:

``a = scipy.sparse.csr_matrix(np.reshape(np.arange(9), (3,3))) b = scipy.sparse.csr_matrix(np.reshape(np.arange(9)*2+5, (3,3))) ``

And I want to compute the cosine similarity (or cosine distance) from `a` and `b` a-la `cosine(a, b)`.

If I print out the dimensions of `a, b` I get:

``(<1x3 sparse matrix of type '<class 'numpy.int64'>'     with 2 stored elements in Compressed Sparse Row format>,  <1x3 sparse matrix of type '<class 'numpy.int64'>'     with 3 stored elements in Compressed Sparse Row format>) ``

So their dimension matches. But trying `cosine(a, b)` results in `ValueError: dimension mismatch`. Any ideas why?

</div

## Список ответов

3  Лучший ответ

Так что проблема в том, что numpy.dot () не знает о редких матрицах, на каждый здесь: http://docs.cscipy.org/doc/scipy/Reence/sparse.html

Когда я бегу

` <код> >>> scipy.spatial.distance.cosine(a, b) Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/usr/lib64/python2.6/site-packages/scipy/spatial/distance.py", line 303, in cosine     return (1.0 - (np.dot(u, v.T) /    File "/usr/lib64/python2.6/site-packages/scipy/sparse/base.py", line 287, in __mul__     raise ValueError('dimension mismatch') ValueError: dimension mismatch   `

Ошибка находится в NP.dot (), которая не понимает объект CSR_Matrix, который был передан как аргумент. Это может быть исправлено:

` <код> >>> scipy.spatial.distance.cosine(a.toarray(), b.toarray()) array([[ 0.10197349]])   `

Очевидно, не тот ответ, который вы искали, преобразовавшись в плотный массив, вы потеряете преимущества производительности, но, по крайней мере, это то, что вызывает вашу проблему.

So the problem is that numpy.dot() is not aware of sparse matrices, per here: http://docs.scipy.org/doc/scipy/reference/sparse.html

When I run

``>>> scipy.spatial.distance.cosine(a, b) Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/usr/lib64/python2.6/site-packages/scipy/spatial/distance.py", line 303, in cosine     return (1.0 - (np.dot(u, v.T) /    File "/usr/lib64/python2.6/site-packages/scipy/sparse/base.py", line 287, in __mul__     raise ValueError('dimension mismatch') ValueError: dimension mismatch ``

The error is in np.dot(), which doesn't understand the csr_matrix object that has been passed as an argument. This can be fixed by:

``>>> scipy.spatial.distance.cosine(a.toarray(), b.toarray()) array([[ 0.10197349]]) ``

Obviously not the answer you were looking for, by converting to a dense array you lose the performance advantages, but at least that is what is causing your problem.

</div

## Связанный проблема

2  Tkinter приложение самого верхнее, даже над полноэкранным экраном  ( Tkinter application topmost even over fullscreen )
Я использую Tkinter на Ubuntu. Я хотел бы, чтобы мое приложение было на вершине экрана, все время. Я знаю, и в настоящее время использую, <код> wm_attribute...

98  Подключение к серверу Microsoft SQL с помощью Python  ( Connecting to microsoft sql server using python )
<Р> Я пытаюсь подключиться к SQL через питон для запуска некоторых запросов на некоторых базах данных SQL на сервере Microsoft SQL. Из моих исследований в Инте...

-3  Как публиковать данные в api api django  ( How to post data to django rest api )
У меня есть модель Django, которая выглядит как следующее: <код> [ { "ticker": "AAPL", "balance_sheet": [], "income_statement": ...

1  Почему libleosa liblesa.feature.mfcc () выпрыгивает 2D массив?  ( Why does librosa librosa feature mfcc spit out a 2d array )
Вызов libleosa.feature.mfcc () в аудиофайле выплесет 2D-массив, как так: <код> array([[ -5.229e+02, -4.944e+02, ..., -5.229e+02, -5.229e+02], [ 7.105...

-1  Почему мои переменные выделены синим цветом? [закрыто]  ( Why are my variables highlighted in blue )
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыто. Этот вопрос не воспроизводится или был вызван опечаткам...

-2  Обменная переменная или бесплатная переменная?  ( Is num a bound variable or a free variable )
<код> def function() num = 1 num += 1 return num Обменивается связанная переменная или бесплатная переменная? P.S. Этот код написан в Python...

1  Есть ли способ удалить подобные (численные) элементы из массива в Python  ( Is there a way to remove similar numerical elements from array in python )
У меня есть функция, которая производит массив как таковой: <код> [ 14 48 81 111 112 113 114 148 179 213 247 279 311 313 314 344 345 346] , что соответ...

0  Питоновый способ Ифициализации булева  ( Pythonic way to initalize a boolean )
Это лучший / самый Pythonic способ инициализации логического значения для этой цели? <код> if start == today: b = date_time_obj <= start else: b = d...

1  Прочитайте текстовый файл и интерпретируйте данные  ( Read a text file and interpret the data )
Я должен написать программу, которая читает в текстовом файле, называемых «TESS.TXT», а затем сортирует файл и распечатывает его со ссылкой, с которой следует...

0  Глобальное имя не работает в Python  ( Global name not working in python )
Я кодирую программу, где я использую Curses, чтобы создать пользовательский интерфейс, и я получил ширину и высоту терминала через другую команду, и я хочу сд...

-1  Ошибка Python OpenCV: (-215) Размер .Width> 0 && size.hight> 0 в функции imshow  ( Python opencv error 215 size width0 size height0 in function imshow )
Я запускаю эту программу, и это возвращает мне это сообщение об ошибке: Ошибка: (-215) Size.width & GT; 0 & AMP; & amp; Size.height & GT; 0 в функции imsho...

3  Получение списка всех абстрактных базовых классов A Данный класс Python  ( Getting a list of all the abstract base classes a given python class implements )
Учитывая класс (в Python 3.8), как я могу получить список всех абстрактных базовых классов ИТ-реализацию? Например, учитывая <код> list , я ищу что-то, что ве...

1  Не удалось не нулевое ограничение: attussaver_post.user_id  ( Not null constraint failed statussaver post user id )
Я пытаюсь сохранить данные пользователя через модельфу в Django. К сожалению, я наткнулся не против NULL CONSTRAINT: Statussaver_Post.user_id. Вот моя модель....

0  Использование Selenium Python при взаимодействии с веб-сайтом вручную  ( Using selenium python while interacting with a website manually )
Обновление: Я создал пользовательский профиль с совместимым способом IE в качестве по умолчанию и получить ту же сообщение об ошибке, поэтому кажется что-то о...

0  Вызов частных методов для метода класса: Python  ( Calling private methods for class method python )
Я пытаюсь реализовать несколько конструкторов в Python, а одно из предложений (через онлайн-поиск) должен был использовать ClassMethod. Однако, используя это,...