Skip to content

Instantly share code, notes, and snippets.

@rjenc29
rjenc29 / interp_116_patch.py
Created March 10, 2019 07:10
Small change to np.interp to adapt behaviour in line with numpy version
@register_jitable
def np_interp_impl_inner(x, xp, fp, dtype, non_finite_per_116):
# non_finite_per_116 -> if False, replicate the bug
# which existed in all versions to 1.16; if True,
# replicate numpy 1.16+ behaviour
x_arr = np.asarray(x)
xp_arr = np.asarray(xp)
fp_arr = np.asarray(fp)
@register_jitable
def np_interp_impl_inner(x, xp, fp, dtype):
x_arr = np.asarray(x)
xp_arr = np.asarray(xp)
fp_arr = np.asarray(fp)
if len(xp_arr) == 0:
raise ValueError('array of sample points is empty')
if len(xp_arr) != len(fp_arr):
@rjenc29
rjenc29 / benchmark.py
Created February 24, 2019 17:40
Interp benchmark
from __future__ import print_function
import sys
import timeit
import numpy as np
from numba import njit
np.random.seed(0)
ndata=20000
# data to ne interpolated
@rjenc29
rjenc29 / gist:e0b15089d10a2b9045c397793f22f35a
Last active September 1, 2020 07:11
numba ewma - speed comparison
import numpy as np
import pandas as pd
from numba import njit
import time
@njit
def ewma_version_1(x, halflife):
decay_coefficient = np.exp(np.log(0.5) / halflife)
out = np.empty_like(x, dtype=np.float64)