2

私は2つの大きな行列を持っています:

       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

1 に答える 1

4

マトリックス要素は文字列です-dtype='|S5'マトリックスを印刷するときに注意してください。最初に X の要素を文字列から浮動小数点数に変換してみてください。

于 2013-07-16T07:58:45.127 に答える