-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata.py
More file actions
47 lines (41 loc) · 1.77 KB
/
Copy pathdata.py
File metadata and controls
47 lines (41 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import numpy as np
from EmotionRanker import EmotionalRanker
from stateUtilities import StateUtilities
class StateData():
def __init__(self, NUM_EMOTIONS, ROLLOVER):
self.data = np.zeros((NUM_EMOTIONS, ROLLOVER))
self.indexer = 0
self.numEmotions = NUM_EMOTIONS
self.rollover = ROLLOVER
self.statusCount = 0
def store(state, emotions):
for emotion, value in emotions.items():
state.data[EmotionalRanker.getEmotionIndex(emotion)][state.indexer] = value
state.indexer = (state.indexer + 1) % state.rollover
state.statusCount = state.statusCount + 1
def getAverageEmotions(stateData):
averages = []
observationCount = min(stateData.statusCount, stateData.rollover)
for emotion in range(0, stateData.numEmotions):
averages.append(np.sum(stateData.data[emotion]/observationCount))
return averages
def getEmotionData(database, emotion):
emotionIndex = EmotionalRanker.getEmotionIndex(emotion)
emotionRankings = []
for stateData in database:
if stateData.statusCount > 0:
emotionRankings.append(StateData.getAverageEmotions(stateData)[emotionIndex])
else:
emotionRankings.append(0)
return emotionRankings
def displayData(database):
locationCount = 0
for stateData in database:
averages = StateData.getAverageEmotions(stateData)
averages = ['%.2f'% elem for elem in averages]
print("State: " + StateUtilities.getStateFromIndex(locationCount))
locationCount = locationCount+1
print("Status Count: " + str(stateData.statusCount))
print("Averages: ")
print(averages)
print("")