Skip to content

Instantly share code, notes, and snippets.

@JnBrymn-EB
Created February 19, 2016 19:46
Show Gist options
  • Save JnBrymn-EB/e9164b4c2ad9bad8a22e to your computer and use it in GitHub Desktop.
Save JnBrymn-EB/e9164b4c2ad9bad8a22e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from pylab import *\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import random"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class DistroBounder(object):\n",
" \n",
" def __init__(self,max_vals):\n",
" self.vals = []\n",
" self.low_count = []\n",
" self.high_count = []\n",
" self.max_vals = max_vals\n",
" \n",
" def put(self,new_val):\n",
" done = False\n",
" for i,v in enumerate(self.vals):\n",
" if new_val < v:\n",
" self.vals.insert(i,new_val)\n",
" self.low_count.insert(i,1)\n",
" self.high_count.insert(i,1)\n",
" done = True\n",
" break\n",
" if not done:\n",
" # this reached if this is the largest val yet seen\n",
" self.vals.append(new_val)\n",
" self.low_count.append(1)\n",
" self.high_count.append(1)\n",
" \n",
" while len(self.vals) > self.max_vals:\n",
" self.drop_one_val()\n",
"\n",
" def drop_one_val(self):\n",
" best_i = -1\n",
" best_area = Infinity\n",
" for i in xrange(1,len(self.vals)-1): #we dont' want to consider the first and last element\n",
" this_area = (self.vals[i+1]-self.vals[i])*self.low_count[i] + (self.vals[i]-self.vals[i-1])*self.high_count[i]\n",
" if this_area < best_area:\n",
" best_area = this_area\n",
" best_i = i\n",
"\n",
" self.high_count[best_i-1] += self.high_count[best_i]\n",
" self.low_count[best_i+1] += self.low_count[best_i]\n",
"\n",
" self.high_count.pop(best_i)\n",
" self.low_count.pop(best_i)\n",
" self.vals.pop(best_i)\n",
"\n",
" \n",
" def _cumulate(self,vect):\n",
" cumuval = 0\n",
" cumuvect = []\n",
" for val in vect:\n",
" cumuval += val\n",
" cumuvect.append(cumuval)\n",
" return cumuvect\n",
" \n",
" def plot(self):\n",
" figure()\n",
" plot(self.vals,self._cumulate(self.low_count), 'r')\n",
" plot(self.vals,self._cumulate(self.high_count), 'b')\n",
" xlabel('vals')\n",
" ylabel('cumulative count')\n",
" show()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e868ad0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"db = DistroBounder(1000)\n",
"for i in xrange(10000):\n",
" db.put(random.normalvariate(10,3))\n",
"db.plot()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\niIiIiIg47f8DWsUsH/Xux/IAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e84c590>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#less accurate \n",
"db = DistroBounder(100)\n",
"for i in xrange(10000):\n",
" db.put(random.normalvariate(10,3))\n",
"db.plot()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nUxERERERERERERERERERERERERERERERERERERGRoP0/g9VT4nkjL3YAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e893290>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#less accurate \n",
"db = DistroBounder(10)\n",
"for i in xrange(10000):\n",
" db.put(random.normalvariate(10,3))\n",
"db.plot()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e88ba90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"db = DistroBounder(100)\n",
"for i in xrange(10000):\n",
" db.put(random.uniform(1,2))\n",
"db.plot()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e87cdd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"db = DistroBounder(100)\n",
"for i in xrange(10000):\n",
" db.put(random.expovariate(1.0))\n",
"db.plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment