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

Cosine distance between sparse matrices


0
vote

проблема

русский

Я пытаюсь понять, как использовать <код> 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[0] и <код> b[0] a-la <код> cosine(a[0], b[0]) .

Если я распечатаю размеры <код> a[0], b[0] 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[0], b[0]) приводит к результатам <код> 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[0] and b[0] a-la cosine(a[0], b[0]).

If I print out the dimensions of a[0], b[0] 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[0], b[0]) results in ValueError: dimension mismatch. Any ideas why?

</div
        
         
         

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

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

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

Когда я бегу

 <код> >>> scipy.spatial.distance.cosine(a[0], b[0]) 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[0].toarray(), b[0].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[0], b[0]) 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[0].toarray(), b[0].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. Однако, используя это,...

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

2  Tkinter приложение самого верхнее, даже над полноэкранным экраном 
98  Подключение к серверу Microsoft SQL с помощью Python 
-3  Как публиковать данные в api api django 
1  Почему libleosa liblesa.feature.mfcc () выпрыгивает 2D массив? 
-1  Почему мои переменные выделены синим цветом? [закрыто] 
-2  Обменная переменная или бесплатная переменная? 
1  Есть ли способ удалить подобные (численные) элементы из массива в Python 
0  Питоновый способ Ифициализации булева 
1  Прочитайте текстовый файл и интерпретируйте данные 
0  Глобальное имя не работает в Python 
-1  Ошибка Python OpenCV: (-215) Размер .Width> 0 && size.hight> 0 в функции imshow 
3  Получение списка всех абстрактных базовых классов A Данный класс Python 
1  Не удалось не нулевое ограничение: attussaver_post.user_id 
0  Использование Selenium Python при взаимодействии с веб-сайтом вручную 
0  Вызов частных методов для метода класса: Python 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.