Skip to content

Commit

Permalink
fix matrix encoder
Browse files Browse the repository at this point in the history
  • Loading branch information
sirfoga committed Oct 2, 2018
1 parent d52830e commit e3a113b
Showing 1 changed file with 31 additions and 7 deletions.
38 changes: 31 additions & 7 deletions hal/data/matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,11 @@ def remove_column(self, headers, header_to_remove):
Headers without header removed and data without column removed
"""

column_index_to_remove = headers.index(header_to_remove)
new_data = np.delete(self.matrix, column_index_to_remove, 1) # remove
new_headers = headers # copy headers
new_headers.remove(header_to_remove) # remove date header
index_to_remove = headers.index(header_to_remove)

new_data = np.delete(self.matrix, index_to_remove, 1) # remove
new_headers = np.delete(headers, index_to_remove, 0) # remove

return new_headers, new_data

def add_columns(self, headers, new_headers, new_columns):
Expand Down Expand Up @@ -170,11 +171,34 @@ def add_columns(self, headers, new_headers, new_columns):

def encode(self):
"""
:return: tuple (LabelEncoder, matrix)
:return: tuple (LabelEncoder, Matrix)
Encoder, encoded matrix
"""

lb = LabelEncoder() # convert
return lb, [
lb.fit_transform(row) for row in self.matrix
concatenated_rows = sum([
row
for row in self.matrix
], []) # long list of raw values
encoded = lb.fit_transform(concatenated_rows) # long list of encoded
n_columns = len(self.matrix[0])
n_rows = len(self.matrix)
matrix = [
encoded[i: i + n_columns]
for i in range(0, n_rows * n_columns, n_columns)
]

return lb, Matrix(matrix)

def decode(self, lb):
"""
:param lb: LabelEncoder
Encoder used to encode matrix
:return: Matrix
Decoded matrix
"""

return Matrix([
lb.inverse_transform(row)
for row in self.matrix
])

0 comments on commit e3a113b

Please sign in to comment.