Skip to main content
 首页 » 编程设计

python之txt文件中的熵

2025年05月04日8kerrycode

我有一个包含数字的文本文件,如下所示:

1231313123123123 
1432423432535345 
3532523452345345 
1231423432453455 
3434535345345345 
3452353453253453 

所有行的长度都相同,我想计算每行的熵并输出为:

2.64234234 
2.65464564 
2.35355435 
etc. 

现在使用这段代码,我的熵是一样的,我做错了什么?

谢谢。

#!/usr/bin/env python 
 
import math 
 
def H(data): 
  if not data: 
    return 0 
  entropy = 0 
  for x in range(256): 
    p_x = float(data.count(chr(x)))/len(data) 
    if p_x > 0: 
      entropy += - p_x*math.log(p_x, 2) 
  return entropy 
 
failas = open('text.txt', 'r') 
for row in failas: 
        print H('failas') 

请您参考如下方法:

failas = open('text.txt', 'r') 
for row in failas: 
    print H(row)