aegis_sim.dataclasses.genomes

Abstract away genomes.

 1"""Abstract away genomes."""
 2
 3import numpy as np
 4
 5
 6class Genomes:
 7    def __init__(self, array):
 8        self.array = array.astype(np.bool_)
 9
10    def __len__(self):
11        return len(self.array)
12
13    def flatten(self):
14        return self.array.reshape(len(self), -1)
15
16    def get(self, individuals):
17        return self.array[individuals]
18
19    def add(self, genomes):
20        self.array = np.concatenate([self.array, genomes.array])
21
22    def keep(self, individuals):
23        self.array = self.array[individuals]
24
25    def get_array(self):
26        return self.array.copy()
27
28    def shape(self):
29        return self.array.shape
30
31    def __getitem__(self, key):
32        new_array = self.array[key]
33        return Genomes(new_array)
34
35    # TODO add logicalxor
class Genomes:
 7class Genomes:
 8    def __init__(self, array):
 9        self.array = array.astype(np.bool_)
10
11    def __len__(self):
12        return len(self.array)
13
14    def flatten(self):
15        return self.array.reshape(len(self), -1)
16
17    def get(self, individuals):
18        return self.array[individuals]
19
20    def add(self, genomes):
21        self.array = np.concatenate([self.array, genomes.array])
22
23    def keep(self, individuals):
24        self.array = self.array[individuals]
25
26    def get_array(self):
27        return self.array.copy()
28
29    def shape(self):
30        return self.array.shape
31
32    def __getitem__(self, key):
33        new_array = self.array[key]
34        return Genomes(new_array)
35
36    # TODO add logicalxor
Genomes(array)
8    def __init__(self, array):
9        self.array = array.astype(np.bool_)
array
def flatten(self):
14    def flatten(self):
15        return self.array.reshape(len(self), -1)
def get(self, individuals):
17    def get(self, individuals):
18        return self.array[individuals]
def add(self, genomes):
20    def add(self, genomes):
21        self.array = np.concatenate([self.array, genomes.array])
def keep(self, individuals):
23    def keep(self, individuals):
24        self.array = self.array[individuals]
def get_array(self):
26    def get_array(self):
27        return self.array.copy()
def shape(self):
29    def shape(self):
30        return self.array.shape