今天我有一个简单的问题,但找不到在线解决方案。我正在使用来自Excel的数据框。这是一个仅包含数字的110x110数据框,我想将其转换为可以使用的矩阵。 首先,我尝试了这个:
W_t=df_t.as_matrix
但是后来我读到,这会将Dataframe变成一个numpy数组,所以我试图将其变成一个矩阵:
w_t=np.asmatrix(W_t)
它说它是一个numpy矩阵,但是在“变量资源管理器”中它显示为1x1对象,不接受任何矩阵运算。当我从头开始创建矩阵时,请说:
b=np.matrix([[1,2],[3,4]])
它显示为2x2 int32。因此,有没有办法将Dataframe转换成有用的矩阵?我只想得到这个表达式:
B = inv(I-w_t)
但是使用w_t的实际形式,却出现此错误:
TypeError: unsupported operand type(s) for -: 'float' and 'method'
有什么建议吗? 预先感谢大家。
答案 0 :(得分:0)
如文档所述,pandas.DataFrame.as_matrix
将pandas DataFrames转换为numpy数组,而不是矩阵。但是,此功能已被弃用。相反,请尝试以下
import numpy as np
import pandas as pd
matrix = np.asmatrix(df_t.values)