Skip to content

Instantly share code, notes, and snippets.

View marskar's full-sized avatar
👨‍💻
Per aspera💪ad astra✨

Martin Skarzynski marskar

👨‍💻
Per aspera💪ad astra✨
View GitHub Profile
@marskar
marskar / min_max_scaler.py
Created May 15, 2020 19:38
A simple Python class to min-max scale sequences of numbers.
from typing import Tuple, List
class MinMaxScaler:
def __init__(self, values: Tuple) -> List:
self.values = values
self.min_val = min(values)
self.max_val = max(values)
self.max_min_diff = self.max_val - self.min_val
def min_max_scale(self, x: Tuple):
@marskar
marskar / Pokemon.py
Last active October 9, 2022 18:00
A Python class to facilitate use of the Pokemon API
from typing import Dict, Iterable, List, KeysView, ItemsView, ValuesView
import matplotlib.pyplot as plt
import pandas as pd
import requests
class Pokemon:
def __init__(self, name: str = None, number: int = None) -> None:
if name and number:
@marskar
marskar / median.py
Created March 9, 2020 17:25
Calculate the median of a series of numbers
def median(vector):
sorted_vector = sorted(vector)
vector_length = len(vector)
middle = vector_length // 2
if vector_length % 2 != 0:
return sorted_vector[middle]
else:
return (sorted_vector[middle] + sorted_vector[middle - 1]) / 2
    
@marskar
marskar / pipe.py
Last active February 18, 2020 05:18
from functools import partial
def pipe(data, *steps):
for step in steps:
if callable(step):
data = step(data)
elif hasattr(type(step), "__iter__"):
func, *others = step
for arg in others:
@marskar
marskar / multi_hyperparam_grid_search.py
Created November 17, 2019 21:46
Multi-hyperparameter, cross-validated grid search
from sklearn.model_selection import KFold, GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
# Create kf instance
kf = KFold(n_splits=5, shuffle=True, random_state=42)
@marskar
marskar / multi_hyperparam_grid_search.py
Created November 17, 2019 21:46
Multi-hyperparameter, cross-validated grid search
from sklearn.model_selection import KFold, GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
# Create kf instance
kf = KFold(n_splits=5, shuffle=True, random_state=42)
@marskar
marskar / two_hyperparam_grid_search.py
Last active November 18, 2019 03:12
Two-hyperparameter, cross-validated grid search
import pandas as pd
from sklearn.model_selection import KFold, GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
# Create kf instance
import numpy as np
import pandas as pd
from statsmodels.formula.api import ols
from scipy.stats import ttest_ind, mannwhitneyu
def permut_concat(iterable):
"""Concatenate iterables of arrays then randomize."""
return np.random.permutation(np.concatenate(iterable))
# Make two distributions: a, b
@marskar
marskar / rot13.py
Last active September 27, 2019 04:25
A Python function to perform rot13 encoding
from this import s
# Without long strings
def rot13(x):
abc = "".join(map(chr, range(65, 91)))
a_to_m = x in abc[:13] + abc[:13].lower()
n_to_z = x in abc[13:] + abc[13:].lower()
return chr(ord(x) + 13 * (a_to_m or -n_to_z))
@marskar
marskar / chaine.py
Last active November 13, 2019 03:24
Ceci n'est pas une chaîne⛓!
from pathlib import Path
from functools import partial
def chaine(data, *funcs,
global_assign=False,
print_results=False,
write_results=False,
**kwargs):
chaine_options = any([global_assign, print_results, write_results])