将pandas Dataframe转换为int32 numpy矩阵

时间:2018-07-06 20:40:25

标签: python pandas numpy matrix

今天我有一个简单的问题,但找不到在线解决方案。我正在使用来自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'

有什么建议吗? 预先感谢大家。

1 个答案:

答案 0 :(得分:0)

如文档所述,pandas.DataFrame.as_matrix将pandas DataFrames转换为numpy数组,而不是矩阵。但是,此功能已被弃用。相反,请尝试以下

import numpy as np
import pandas as pd
matrix = np.asmatrix(df_t.values)