对于分类变量定义的一般规则是哑变量个数,哑变量的定义
Python分析建模、日常问题排序(4)
确定时间后,离发工资还有四周。
2018.08.13~2018.08.19
用numpy的argmax和arange方法转换虚拟变量
a=numpy.array([[1,5,5,2],
[9, 6, 2, 8],
[3, 7, 9, 1]])
Numpy.argmax(a,axis=0) #输出每个向量的最大索引
Numpy.argmax(a,axis=1) #输出最大索引
Numpy.equal (result _ max,test _ max) #一一对应的元素,如果相等,返回true如果不相等,则返回false。
Numpy的方法真的很好用,而且运算速度很快。pd虽然也能写方法,但是没有numpy的快。
tem=(numpy . arange(3)==NP . array([[2],[1],[0],[3]])。astype(int)
将数值变量转换为哑变量,归类为numpy.arange(2),即[0,1]。
如果数据为0,则返回true,如果数据为1,则返回false。
Np.astype(int)可以将所有真值转换为1,将所有假值转换为0。
这样,数据可以转换成0,1个虚拟变量。
np.argmax(tem,轴=1)
将虚拟变量转换为数值。
type(df.ix[:1:2])或type(df.iloc[:1:2])的数据类型是dataframe。
Type(df[b])是系列。
df.ix的数据形式[:1:2]。值是多个数组[[2],[4],[1]]
df[b]的数据形式。值是一个数组[2,4,1]
将一列数据帧转换为虚拟变量
如果有三个类,只需要转换成两列哑变量;如果有n个类,只需要转换成n-1列哑变量。
#方法1:
(np.arange(2)==pd。DataFrame([0,1,1,0,1])。价值观)。astype(int)
#方法2:
从keras.utils.np_utils导入到_ categorical
to _ categorial(PD。DataFrame([0,1,1,0,1])。值,数量类=2)