2013-07-15 7 views
2

У меня есть 2 большие матрицы:Numpy матрица ошибок умножения

 Xn = np.matrix(X) 
     Xnt = Xn.transpose() 

Тогда Xn, как это:

>>> Xn 
    matrix([['0,208', '0,22', '0,208', ..., '0,194', '0,205', '0,205'], 
    ['0,22', '0,208', '0,214', ..., '0,205', '0,205', '0,214'], 
    ['0,208', '0,214', '0,22', ..., '0,205', '0,214', '0,211'], 
    ..., 
    ['0,214', '0,214', '0,208', ..., '0,199', '0,211', '0,226'], 
    ['0,214', '0,208', '0,208', ..., '0,211', '0,226', '0,252'], 
    ['0,208', '0,208', '0,211', ..., '0,226', '0,252', '0,24']], 
    dtype='|S5') 

Но я хочу, чтобы умножить Xn и XNT. Произошла ошибка.

>>> print(Xn*Xnt) 

    Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    print(Xn*Xnt) 
    File "C:\Python27\lib\site-packages\numpy\matrixlib\defmatrix.py", line 330, in __mul__ 
    return N.dot(self, asmatrix(other)) 
    ValueError: data type must provide an itemsize 

В чем проблема?

+4

Ваши матричные элементы являются строками - обратите внимание на 'dtype = '| S5'', когда вы печатаете матрицу. Попробуйте сначала преобразовать элементы 'X' из строк в float. – mtrw

+0

Спасибо, это помогло! –

+1

@mtrw закройте это или заново сформулируйте в качестве ответа :-) –

ответ

4

Ваши матричные элементы - это строки - примечание dtype='|S5' при печати матрицы. Попробуйте сначала преобразовать элементы X из строк в float.

Смежные вопросы