📄
字号:
#Filename 熵值法.py
data1=[1.0,2.0,3.0]
data2=[4.0,5.0,6.0]
zhibiao=[1,0,1]
data=[data1,data2,zhibiao]
def max(str):##最大值函数
n=len(str)
i=0
temp=str[0]
for i in range(1,n-1):
if str[i]>temp:
temp=str[i]
return temp
def min(str):##最小值函数
n=len(str)
i=0
temp=str[0]
for i in range(1,n-1):
if str[i]<temp:
temp=str[i]
return temp
def add(str):##累加函数
n=len(str)
s=0
i=0
for i in range(0,n-1):
s+=str[i]
return s
def chu(str):##除函数
n=len(str)
i=0
for i in range(0,n-1):
str[i]/=s
return str
def calculate(str):
n=len(str)
i=0
e=0
k=1/ln(len(data1))
for i in range(0,n-1):
e+=str[i]*ln(str[i])
e=e*k
return e
for i in range(0,len(data)):##函数转置
for j in range (0,len(data1)):
last[j][i]=data[i][j]
for i in range(0,len(data1):
if last[i][len(data)]=1:
s=max(last[i])
for j in range(0,len(data)-1):
last[i][j]/=s
s=min(last[i])
for j in range(0,len(data)-1):
last[i][j]/=s
for i in range(0,len(data1):
add(last[i])
chu(last[i])
for i in range(0,len(data1)):
e[i]=calculate(last[i])
b[i]=1-e[i]
for i in range (0,len(b)):
s+=b[i]
for i in range (0,len(b)):
b[i]/=s
b.sort(reverse=True)
print b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -