data-science-ipython-notebooks/numpy/numpy.ipynb

709 lines
65 KiB
Python
Raw Normal View History

{
2015-04-15 02:19:07 +08:00
"cells": [
{
2015-04-15 02:19:07 +08:00
"cell_type": "markdown",
"metadata": {},
"source": [
"# NumPy\n",
"\n",
2015-05-31 21:38:47 +08:00
"Credits: Forked from [Parallel Machine Learning with scikit-learn and IPython](https://github.com/ogrisel/parallel_ml_tutorial) by Olivier Grisel\n",
"\n",
2015-04-15 02:19:07 +08:00
"* NumPy Arrays, dtype, and shape\n",
"* Common Array Operations\n",
"* Reshape and Update In-Place\n",
"* Combine Arrays\n",
"* Create Sample Data"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## NumPy Arrays, dtypes, and shapes"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 2 3]\n",
"(3,)\n",
"int64\n"
]
2015-04-15 02:19:07 +08:00
}
],
"source": [
"a = np.array([1, 2, 3])\n",
"print(a)\n",
"print(a.shape)\n",
"print(a.dtype)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 2 4]\n",
" [1 3 5]]\n",
"(2, 3)\n",
"int64\n"
]
2015-04-15 02:19:07 +08:00
}
],
"source": [
"b = np.array([[0, 2, 4], [1, 3, 5]])\n",
"print(b)\n",
"print(b.shape)\n",
"print(b.dtype)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 0., 0., 0., 0.])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.zeros(5)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[1, 1, 1, 1],\n",
" [1, 1, 1, 1],\n",
" [1, 1, 1, 1]], dtype=int32)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.ones(shape=(3, 4), dtype=np.int32)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Common Array Operations"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0. 1. 2. ]\n",
" [ 0.5 1.5 2.5]]\n",
"(2, 3)\n",
"float64\n"
]
2015-04-15 02:19:07 +08:00
}
],
"source": [
"c = b * 0.5\n",
"print(c)\n",
"print(c.shape)\n",
"print(c.dtype)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 1. 3. 5. ]\n",
" [ 1.5 3.5 5.5]]\n"
]
2015-04-15 02:19:07 +08:00
}
],
"source": [
"d = a + c\n",
"print(d)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1., 3., 5.])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d[0]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d[0, 0]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1. , 1.5])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d[:, 0]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"19.5"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d.sum()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"3.25"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d.mean()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 2.5, 6.5, 10.5])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d.sum(axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 3. , 3.5])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d.mean(axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reshape and Update In-Place"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0 1 2 3 4 5 6 7 8 9 10 11]\n"
]
2015-04-15 02:19:07 +08:00
}
],
"source": [
"e = np.arange(12)\n",
"print(e)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0 1 2 3]\n",
" [ 4 5 6 7]\n",
" [ 8 9 10 11]]\n"
]
}
],
2015-04-15 02:19:07 +08:00
"source": [
"# f is a view of contents of e\n",
"f = e.reshape(3, 4)\n",
"print(f)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 1 2 3 4 0 0 0 0 0 0 0]\n"
]
}
],
"source": [
2015-08-01 22:09:23 +08:00
"# Set values of e from index 5 onwards to 0\n",
2015-04-15 02:19:07 +08:00
"e[5:] = 0\n",
"print(e)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0, 1, 2, 3],\n",
" [4, 0, 0, 0],\n",
" [0, 0, 0, 0]])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# f is also updated\n",
"f"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
" C_CONTIGUOUS : True\n",
" F_CONTIGUOUS : False\n",
" OWNDATA : False\n",
" WRITEABLE : True\n",
" ALIGNED : True\n",
" UPDATEIFCOPY : False"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# OWNDATA shows f does not own its data\n",
"f.flags"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Combine Arrays"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 2, 3])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0, 2, 4],\n",
" [1, 3, 5]])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1. , 3. , 5. ],\n",
" [ 1.5, 3.5, 5.5]])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 2, 3, 1, 2, 3, 1, 2, 3])"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.concatenate([a, a, a])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1. , 2. , 3. ],\n",
" [ 0. , 2. , 4. ],\n",
" [ 1. , 3. , 5. ],\n",
" [ 1. , 3. , 5. ],\n",
" [ 1.5, 3.5, 5.5]])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Use broadcasting when needed to do this automatically\n",
"np.vstack([a, b, d])"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0. , 2. , 4. , 1. , 3. , 5. ],\n",
" [ 1. , 3. , 5. , 1.5, 3.5, 5.5]])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# In machine learning, useful to enrich or \n",
"# add new/concatenate features with hstack\n",
"np.hstack([b, d])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create Sample Data"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import pylab as plt\n",
"import seaborn\n",
"\n",
"seaborn.set()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n9NjDK5weEz5DGAPwjen
"text/plain": [
"<matplotlib.figure.Figure at 0x10bac8d50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Create evenly spaced numbers over the specified interval\n",
"x = np.linspace(0, 2, 10)\n",
"plt.plot(x, 'o-');\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nI1AEuJg4sW+T9722tpb
"text/plain": [
"<matplotlib.figure.Figure at 0x10bc3a250>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Create sample data, add some noise\n",
"x = np.random.uniform(1, 100, 1000)\n",
"y = np.log(x) + np.random.normal(0, .3, 1000)\n",
"\n",
"plt.scatter(x, y)\n",
"plt.show()"
]
}
2015-04-15 02:19:07 +08:00
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}