@[TOC] (关于python 如何实现数据内两两特征相乘)
写在前面
花了点时间,记录自己写的烂代码吧,有错请指出
第一种方法(两个for循环)
temp=pd.DataFrame()
for i in range(temp1.shape[1]):
for j in range(i+1,temp1.shape[1]):
tempij=temp1.iloc[:,i]/temp1.iloc[:,j]
# tempij=temp11.iloc[:,i]*temp11.iloc[:,j]
temp=pd.concat([temp,tempij],axis=1)
第一种也是最简单的,但估计在数据量比较大时,估计速度会比较慢,因为这点被我同门吐槽了
第二种方法(一个for循环)
a=pd.DataFrame()
for i in range(temp1.shape[1]-1)]:
a=pd.concat([a,pd.DataFrame(np.array(temp1.iloc[:,i])+
np.array(temp1.iloc[:,(i+1):temp1.shape[1]]).T)],axis=0)
a=a.T
不知道为什么虽然只用了一个循环,但感觉语句好长呀
结果展示
第一种方法
第二种方法
可以看到第二种方法速度远远快于第一种方法,大概快10倍左右,这还只是个20列的矩阵,如果更大的话,应该会更快