【发布时间】:2020-04-26 04:12:49
【问题描述】:
我是 Python 的新手,我不明白为什么会出现这个错误。 这是我写的代码:
var_1 = pd.DataFrame({'Vcond':[], 'Rsquared':[]})
for j in clim :
varj = Cmean.loc[j][j]
varz = Cmean.loc['Zi']['Zi']
covzj = Cmean.loc['Zi'][j]
B = np.linalg.inv(varj.to_numpy())
Vcondj = varz-covzj @ B @ covzj
Rsquared = (varz - Vcondj)/varz
var_1.loc[j]={'Vcond': Vcondj, 'Rsquared': Rsquared}
print(var_1)
还有错误:
AttributeError: 'numpy.float64' object has no attribute 'to_numpy'
我的老师说要使用 .to_numpy() 这种方式来计算矩阵的逆,但它似乎不起作用。任何帮助将不胜感激!
【问题讨论】:
-
嗨。确保在此处提问时定义您在代码 sn-p 中使用的所有名称。例如,
Cmean是什么?更多详情见mcve -
您好,感谢您的建议。我想定义所有变量,但 Cmean 是一个 DataFrame,它是通过大量操作创建的。不知道怎么把最终的数据帧写成代码短...
-
在 Python 中,每个对象(变量)都属于一个特定的类,有自己的
methods。to_numpy是pandas.DataFrame(和Series)的方法。varj不是其中之一,也没有那种方法。作为初学者,你会经常遇到这样的 AttributeError 。试着理解变量实际上是什么,应该是什么。您还应该学习查找语言和模块参考。