Skip to content

Instantly share code, notes, and snippets.

@leifdenby
Created January 21, 2019 17:29
Show Gist options
  • Save leifdenby/8e874d3440a1ac96f96465a418f158ab to your computer and use it in GitHub Desktop.
Save leifdenby/8e874d3440a1ac96f96465a418f158ab to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import bottleneck"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [],
"source": [
"a = 300.*np.ones((800**2,), dtype=np.float32)"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"300.0"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.mean(a)"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"302.6018981933594"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bottleneck.nanmean(a)"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [],
"source": [
"arr = []\n",
"\n",
"for n in range(10, 1000, 50):\n",
" a = 1.6*np.ones((n**2,), dtype=np.float32)\n",
" \n",
" arr.append((n, np.abs(np.mean(a) - bottleneck.nanmean(a))))"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0,0.5,'error')"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"arr = np.array(arr)\n",
"plt.scatter(arr[:,0], arr[:,1])\n",
"plt.grid(True)\n",
"plt.xlabel('N')\n",
"plt.ylabel('error')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"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.15"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment