В моей программе ниже я использовал функцию append () для сохранения энтропии в списке. У меня в программе 36 диалогов, и я хочу сохранить энтропию одного диалога в списке, а затем обновить значения в той же переменной для вторых диалогов и для энтропии третьего диалога также обновить значения в том же списке.
Но функция append () добавит все энтропии для всех диалогов в списке, но не обновит значения.
Моя программа находится ниже:
import numpy as np
import csv
from scipy.stats import entropy
from math import log10
import statistics
import matplotlib.pyplot as plt
store_entropy = []
critical_entropy = 0
position = 0
outputfile = open("Output.txt","w")
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for line in reader:
lines = filter(None, line[2:])
lines1 = ' '.join(lines).split(',')
for row in lines1[::]:
makeOneLine = row.rstrip('\n')
delimiter = " "
makeOneLine = delimiter.join(makeOneLine.split(delimiter, 3))
numpyArraysDisplay = np.array(list(makeOneLine.split(" ")))
print(numpyArraysDisplay)
outputfile.write(str(numpyArraysDisplay) + '\n')
#Loop for first segment
for x in range(0, numpyArraysDisplay.size):
part1 = numpyArraysDisplay[:x + 1] # First segment divide
strings, counts = np.unique(part1, return_counts=True)
CountWordsfrequency = np.array(list(dict(zip(strings, counts)).values()))
print(CountWordsfrequency)
outputfile.write(str(CountWordsfrequency) + '\n')
for y in range(0, CountWordsfrequency.size):
probability = CountWordsfrequency[y]/ part1.size
outputfile.write("Probability is \t" + str(probability) + '\n')
ent2 = entropy(counts,base=10)
outputfile.write("Entropy is \t" + str(ent2) + '\n')
store_entropy.append(ent2)
Если я распечатываю список store_entropy
, то он напечатает все значения в списке от первого диалога до последнего. Я хочу, чтобы первый диалог энтропии сохранялся в переменной, и когда l oop запускает второй раз, второй диалог энтропии обновляет первый, а не добавляет его.
Мой вывод:
[0.0, 0.30102999566398114, 0.4771212547196623, 0.4515449934959717,0.0,0.6179053239112496,
0.6135103844338377, 0.6097931356022916]
Ожидается :
[0.0, 0.30102999566398114, 0.4771212547196623, 0.4515449934959717]
[0.0, 0.6179053239112496,0.6135103844338377, 0.6097931356022916]
Скажите, пожалуйста, есть ли у кого-нибудь решение.