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