text: import numpy as np
  from scipy import stats
  from sklearn.feature_selection import chi2
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.svm import SVC
  from sklearn.linear_model import LinearRegression
  from sklearn.feature_selection import RFE
  
  def Ttest(X, Y, ttest_num):
  	Y1 = np.where(Y == 1)[0]
  	Y0 = np.where(Y == 0)[0]
  	p_list = []
  	for i in range(len(X[0])):
  		p_l = stats.levene(X[Y1, i], X[Y0, i])[1]
  		equal_var = [True if p_l > 0.05 else False]
  		p_list.append(stats.ttest_ind(X[Y1, i], X[Y0, i], equal_var = equal_var)[1])
  	T_index = np.argsort(np.array(p_list))[0 : ttest_num]
  	X1 = X[:, T_index]
  	return T_index
  
  def Wtest(X, Y, wtest_num):
  	Y1 = np.where(Y == 1)[0]
  	Y0 = np.where(Y == 0)[0]
  	p_list = []
  	for i in range(len(X[0])):
  		p_list.append(stats.ranksums(X[Y1, i], X[Y0, i])[1])
  	W_index = np.argsort(np.array(p_list))[0 : wtest_num]
  	return W_index
  
  def Chi2(X, Y, ctest_num):
  	p_list = chi2(X, Y)[1]
  	C_index = np.argsort(np.array(p_list))[0 : ctest_num]
  	return C_index
  
  def RF(X, Y, rtest_num):
  	forest = RandomForestClassifier(random_state = 0, n_jobs = 1)
  	forest.fit(X, Y)
  	importance = forest.feature_importances_
  	R_index = np.argsort(np.array(importance))[::-1][0 : rtest_num]
  	return R_index
  
  def LR_RFE(X, Y, lrtest_num):
  	clf = LinearRegression()
  	rfe = RFE(clf, n_features_to_select = 1)
  	rfe.fit(X, Y)
  	rank = rfe.ranking_
  	LR_index = np.argsort(np.array(rank))[0 : lrtest_num]
  	return LR_index
  
  def SVM_RFE(X, Y, srtest_num):
  	clf = SVC(kernel='linear', random_state = 0)
  	rfe = RFE(clf, n_features_to_select = 1)
  	rfe.fit(X, Y)
  	rank = rfe.ranking_
  	SR_index = np.argsort(np.array(rank))[0:srtest_num]
  	return SR_index