Re: [问题] inv求反矩阵出问题

楼主: sonicstars (昊旱)   2017-09-24 21:33:01
因为问题解决了,所以自回一下
感谢KSJ大的提醒,确实是因为matrix的资料型态有问题
将其转换为float就可以算了,相关程式码如下:
import pandas as pd
import numpy as np
data = pd.read_csv('../MQ35/20140101_20170728.csv')
cS = np.delete(data.as_matrix(), 0, 1)
y = np.vstack(cS[1:, :]).astype(np.float)
x = np.vstack(cS[:-1, :]).astype(np.float)
np.linalg.inv(np.dot(x.T, x)
※ 引述《sonicstars (昊旱)》之铭言:
: 各位前辈大家好
: 我利用numpy.linalg.inv求算反矩阵的时候遇到了无法求解的问题
: 我的matrix名称为betai,其数值如下
: [[3935.3477999999996 2495.1955999999996 1586.1095]
: [2495.1955999999996 1582.2803999999999 1005.8091999999998]
: [1586.1095000000000 1005.8091999999998 639.3906]]
: matrix的其他资讯
: https://imgur.com/Db0cwTO
: 然后会跳这个错误讯息
: https://imgur.com/x8LClWD
: https://imgur.com/6PbCMm2
: 在爬版之后原本以为与这位的问题差不多
: https://www.ptt.cc/bbs/Python/M.1466588274.A.BAD.html
: 使用这位先进的解法
: https://www.ptt.cc/bbs/Python/M.1466650959.A.B2B.html
: 撰写程式码:
: betai = numpy.dot(x.T, x)
: IMatrix = numpy.eye(betai.shape[1])
: B = IMatrix - betai
: binv = numpy.linalg.solve(betai, B)
: 则是跳出这样的错误讯息
: https://imgur.com/jIObslM
: https://imgur.com/bup14A9
: 请问我是否漏了什么?是否有其他的方法可以求反矩阵?

Links booklink

Contact Us: admin [ a t ] ucptt.com