关于python 如何实现数据内两两特征相乘

tech2024-09-27  17

@[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列的矩阵,如果更大的话,应该会更快

最新回复(0)