计算文件的信息量(python程序)
读取文件
def read_input(): # 读取文件成字节流
file_path = input('please input the path of the file:')
f = np.fromfile(file_path, dtype=np.uint8)
return f
计算信息量
def compute_info(x): # 计算信息量
value = np.zeros(256)
for i in x:
value[i] = value[i] + 1
p = value / x.size
p = np.where(p == 0, 1, p)
self_info = -np.log2(p)
info = np.sum(p * self_info)
return info
主函数
def main():
x = read_input() #输入待计算信息量的文件
info = compute_info(x)
print(info) #打印计算出的信息量
程序
import numpy as np
def main():
x = read_input() #输入待计算信息量的文件
info = compute_info(x)
print(info) #打印计算出的信息量
def compute_info(x): # 计算信息量
value = np.zeros(256)
for i in x:
value[i] = value[i] + 1
p = value / x.size
p = np.where(p == 0, 1, p)
self_info = -np.log2(p)
info = np.sum(p * self_info)
return info
def read_input(): # 读取文件成字节流
file_path = input('please input the path of the file:')
f = np.fromfile(file_path, dtype=np.uint8)
return f
if __name__ == '__main__':
main()
举例