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

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)

关于python - txt文件中的熵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2185862/

10-10 05:30