Commit a556561b2f29098bf54d022e59ad47f04199a7a8
1 parent
9c2436a4f7
Exists in
master
Basic data management functionalities added, with an init file empty.
Showing 1 changed file with 44 additions and 0 deletions Inline Diff
volia/data_io.py
File was created | 1 | ''' | |
2 | Data management input/output | ||
3 | ''' | ||
4 | |||
5 | # Import packages and modules | ||
6 | import numpy as np | ||
7 | |||
8 | # Defining some types | ||
9 | from typing import List, Dict | ||
10 | KeyToList = Dict[str, List[str]] | ||
11 | KeyToFeatures = Dict[str, List[float]] | ||
12 | |||
13 | |||
14 | def read_lst(file_path: str) -> KeyToList: | ||
15 | ''' | ||
16 | Read lst file with this structure: | ||
17 | [id] [value1] [value2] ... [value n] | ||
18 | |||
19 | This is a basic function reused by others like read_features. | ||
20 | returns a dictionary with id as key and a list of value as corresponding values | ||
21 | ''' | ||
22 | # KeyToList type variable | ||
23 | key_to_list = dict() | ||
24 | with open(file_path, "r") as f: | ||
25 | for line in f: | ||
26 | splited = line.replace("\n", "").split(" ") | ||
27 | id = splited[0] | ||
28 | values = splited[1:] | ||
29 | key_to_list[id] = values | ||
30 | return key_to_list | ||
31 | |||
32 | |||
33 | def read_features(file_path: str) -> KeyToFeatures: | ||
34 | ''' | ||
35 | ''' | ||
36 | # KeyToFeatures type variable | ||
37 | key_to_features = dict() | ||
38 | # and the KeyToList | ||
39 | key_to_list = read_lst(file_path) | ||
40 | |||
41 | for key_, list_ in key_to_list.items(): | ||
42 | key_to_features[key_] = np.asarray(list_, dtype=float) | ||
43 | |||
44 | return key_to_features |