Skip to content

Instantly share code, notes, and snippets.

@bastibe
Created March 27, 2013 13:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bastibe/5254089 to your computer and use it in GitHub Desktop.
Save bastibe/5254089 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "Python instead of Matlab"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n",
"For more information, type 'help(pylab)'.\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Python instead of Matlab\n",
"\n",
"Python itself does not know matrices or linear algebra\n",
"Python itself does not contain any signal processing tools\n",
"Python itself has no plotting capabilities"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Matrices and linear algebra are available through Numpy:\n",
"import numpy\n",
"\n",
"time = numpy.linspace(0, 1, 16)\n",
"signal = numpy.sin(time * 2*3.14) # Python does not know pi yet!\n",
"print(time)\n",
"print(signal)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 0. 0.06666667 0.13333333 0.2 0.26666667 0.33333333\n",
" 0.4 0.46666667 0.53333333 0.6 0.66666667 0.73333333\n",
" 0.8 0.86666667 0.93333333 1. ]\n",
"[ 0. 0.40654264 0.74286057 0.95085946 0.99461032 0.8665558\n",
" 0.58881556 0.20936545 -0.20624968 -0.586238 -0.86496168 -0.99427502\n",
" -0.95184088 -0.74498919 -0.40945077 -0.0031853 ]\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Signal processing is possible through Scipy:\n",
"import scipy\n",
"spectrum = scipy.fft(signal)\n",
"print(spectrum)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[-0.00158071+0.j 1.48576840-7.53643784j -0.28555269+0.6909811j\n",
" -0.23438689+0.35116959j -0.22074392+0.22089335j -0.21515600+0.14383301j\n",
" -0.21248557+0.0880493j -0.21122677+0.0420304j -0.21085240+0.j\n",
" -0.21122677-0.0420304j -0.21248557-0.0880493j -0.21515600-0.14383301j\n",
" -0.22074392-0.22089335j -0.23438689-0.35116959j -0.28555269-0.6909811j\n",
" 1.48576840+7.53643784j]\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Plotting is provided by Matplotlib:\n",
"import matplotlib.pyplot\n",
"matplotlib.pyplot.plot(spectrum)\n",
"matplotlib.pyplot.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/numpy/core/numeric.py:236: ComplexWarning: Casting complex values to real discards the imaginary part\n",
" return array(a, dtype, copy=False, order=order)\n"
]
},
{
"output_type": "display_data",
"png": "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\nuR4AAAAASUVORK5CYII=\n"
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pylab: Numpy, Scipy and Matplotlib in one convenient package"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%reset\n",
"\n",
"# Import all the good stuff:\n",
"from pylab import *"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Now most things work like in Matlab\n",
"time = linspace(0, 1, 64)\n",
"signal = sin(time * 2*pi)\n",
"spectrum = fft(signal)\n",
"signal_again = ifft(spectrum)\n",
"\n",
"figure()\n",
"plot(time, signal, 'ro')\n",
"title('signal')\n",
"\n",
"figure()\n",
"plot(time, signal_again, 'bx')\n",
"title('ifft(fft(signal))')\n",
"\n",
"show() # except for show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nHwWP6QfdDry2AAAAAElFTkSuQmCC\n"
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Partly with extended syntax\n",
"figure()\n",
"plot(signal, color='lightgray', linewidth=5, label='original signal')\n",
"plot(signal_again, color='#AA1100', label='fft$^{-1}$(fft(signal))')\n",
"legend()\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Or even with an object oriented version\n",
"fig, [ax1, ax2] = subplots(1, 2)\n",
"ax1.plot(real(spectrum), label='$\\Re\\{$spectrum$\\}$')\n",
"ax1.legend(loc='upper center')\n",
"ax2.plot(imag(spectrum), label='$\\Im\\{$spectrum$\\}$')\n",
"ax2.legend(loc='upper center')\n",
"fig.set_figwidth(17)\n",
"fig.savefig('spectrum.png')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nSWvXrtV3vvOdWu89duyYnnnmGf3zn//UuXPntG3bNl1//fXe7a+88oq2bdumjz76SMePH9cvfvEL\nSVJ1dbVSU1OVmJioU6dOaefOnfrNb36jbdu2yeVy6Zvf/KYGDx6sTz75REVFRfr2t78tSXrxxRd1\n3XXXacuWLTp//rweffRR72dt3LhRb775psrKytSlS5d6/bTZbLLZbN7Xf/3rX7Vz504dO3ZMW7Zs\nUUpKirKysvTZZ5+purpaTz/9dL1j3HHHHdq8ebMvP2YEOAJxAHAbP368Nm3aVGud3W5Xr169FBYW\npq5du0piXCAxLkDwCtg5ImTEYSVffPGFevToodDQUBmGoVWrVik/P19lZWV66aWXNGTIEK1cuVJf\nfvmlMjMza723S5cuqqio0AcffKBrrrlG1113nXebzWbTokWLFBkZKUl64okn9NBDD+nnP/+53nvv\nPZ09e1Y//vGPJUmDBw/WAw88oI0bN6p37946ffq0nnrqKYWEuM/Xfe1rX2uyDzabTQ8//LD3s5pj\ns9n00EMPqX///pKk22+/XXa7XaNGjZIkTZ06tcEqqOvXr9e8efN08eJFzZw5s0WfheBA1XQAcAsP\nD9fEiRO1bds2feUrX1G/fv306KOPKj09XXFxcSouLtb69esZF4hxAYJXmzLic+fOld1u14gRI5rc\n77333lNoaKj++te/tvjYBOLobDZb+zx8ceHCBR0+fFjx8fGSpEceeUT9+/dXXFychgwZIkn60Y9+\npH79+umJJ56o9d6YmBj95je/UUZGhux2u9LT02vdUzMqKsq7fN111+nUqVOSpE8++USnTp1SeHi4\n97F8+XJ99tlnKiws1PXXX+/9sm2pmp/VEna73bvco0ePWq+7d++uCxcu1HvPnDlzlJaWxpetCZER\nBxAo/Dkm8Bg0aJAmTpzovVxt+PDh2rlzp+Li4mS32xkX/AfjAgSrNgXic+bMUU5OTpP7uFwuPfbY\nY7rrrruaLOJQl2dARiCOzmIY7fPwRWRkpGbNmqXz5897v3QMw6j3f+b73/++Xn311XrvT09P1z/+\n8Q998sknstlseuyxx7zbPNeXe5YHDRokyf3lOHjwYJWWlnof586d05YtW+RwOPTpp5/K5XI12F5b\nI6OLuut79uypixcvel/XHAg0pCV/I/bs2aN77rmn2f0QfKiaDiBQ+HNMIElFRUX66U9/qj/96U/e\ndUuWLNGRI0e0fft27zrGBYwLELzaFIjffvvtCg8Pb3Kf3/72t7r33nu900xaqrxc6tuXqumwhp07\ndyo3N1eff/65t0KqJIWEhOjSpUsqKSnxvr58+XKt9x4/fly7du1SRUWFunXrpu7du3uvwzIMQ2vW\nrFFRUZFKSkr05JNPes8Yjx07Vr1799bKlSt16dIluVwuHTlyRP/85z81btw4XXvttVqyZIkuXryo\n8vJyvfvuu97PtNvt+uijj5rt1+jRo/Xyyy/L5XIpJydHb731Vpt/Vq05oYfgQkYcANwiIyO1dOlS\nvfTSS1q5cqUkd1B77bXX6sSJE979GBcwLjCz1aul117zdys6TocWaysqKlJ2drYWLFggqfGzZRkZ\nGd6H0+mU5C7W1rcvGXFYw4QJE3TkyBFt2LDBO8Vs2rRp2r59u9asWeOtjtqQiooKPf744+rfv7+u\nvfZanT17VsuXL5fk/j933333aeLEibrhhhsUGxvrvfarS5cu2rJliw4dOqQhQ4aof//++t73vqdz\n584pJCREb7zxhj788ENdd911ioqKqnXG/fHHH9cvfvELhYeH61e/+lWjbVu1apXeeOMNhYeH65VX\nXtHUqVOb/DnU/BtRt4ALzC/QA3Gn01nr+woAOlK3bt30l7/8RR9++KEWL16sjIwMde3aVffff3+T\n72NcALPYv18qLfV3KzqOzWjjaaSTJ08qNTVV//d//1dv27e+9S09+uijGjdunO6//36lpqZq+vTp\ntRvQyH0Hn3hC2rVLioiQ/va3trQQaP7+lsFk8ODBtc6GN7fvc889p/Hjx3dwqzpPS/pvpn9vK1mw\nQBoxQlq40N8taRl+zxpXXl6ur3/966qoqFBlZaXuueceLV++XCUlJfr2t7+tTz75RNHR0Xr11VfV\nt2/fWu/l54rOYKbfM8YFTfffTP/WVjNlinT//e7nQOfL71mHZsT379+vmTNnavDgwfrLX/6ihQsX\ntvj2Ap6p6WTEgdp69Ohh2ftoHjt2TNHR0f5uBjpIoGfE0XLdu3fX7t27dejQIR0+fFi7d+/W22+/\nraysLO+tGidMmKCsrCx/NxUIeowLov3dDHSQkhKpmaugg1qH3r7s448/9i7PmTNHqampSktLa9F7\nPYF4jXoSACS9/vrr+vnPf65p06Y1e+sQM9m6dav27NlT776qMA8CcXPp2bOnJKmyslIul0vh4eHa\n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\nffr0Wu9nXAAACEatHROENrUxOTlZZ86cqbf+ySefrPXaZrM1+cV54cIF3XvvvVq1alWtIFxiEAMA\nQLBpanywfPnyWtd/N/U939DYgXEBAMAKmgzEt2/f3ug2u92uM2fOaODAgTp9+rQGDBjQ4H5VVVWa\nPn26vvvd72rKlCltay0AAPC7xsYHR44c0YkTJzRq1ChJUmFhoW666Sbt27dPkZGRKigo8O5bWFio\nyMjITmkvAACBxudrxNPS0rR+/XpJ0vr16xsMsg3D0Lx585SQkKDFixf73koAABDwhg8fruLiYp04\ncUInTpyQw+HQgQMHZLfblZaWpo0bN6qyslInTpxQfn6+xo4d6+8mAwDgFz4H4kuWLNH27dsVFxen\nXbt2acmSJZKkU6dO6e6775YkvfPOO3rppZe0e/duJSYmKjExUTk5Oe3TcgAAENBqTj1PSEjQjBkz\nlJCQoJSUFK1Zs4brwQEAluVzIB4REaEdO3bo+PHj2rZtm/r27StJGjRokP72t79Jkm677TZVV1fr\n0KFDOnjwoA4ePKi77rrLe4ycnBzFx8crNjZWK1asaGNXAtfcuXNlt9s1YsQI77qW3Ic92DV2H3kz\n9728vFzjxo3T6NGjlZCQoMcff1ySuftck8vlUmJiolJTUyWZv9/R0dEaOXKkEhMTvZk9s/dZksrK\nynTvvfdq6NChSkhI0L59+0zf72PHjnlPKCcmJqpPnz56+umnTd/vtvr4448VERHhfb106VJ9+OGH\n+te//qVJkybV259xgXl/l6w4JpCsPS6w2phAsua4gDGB72MCnwPxtnK5XFq0aJFycnKUl5enDRs2\nmPYe43PmzKk3E6Al92EPdo3dR97Mfe/evbt2796tQ4cO6fDhw9q9e7fefvttU/e5plWrVikhIcGb\n5TJ7v202m5xOpw4ePOi9DZPZ+yxJjzzyiCZPnqyjR4/q8OHDio+PN32/b7zxRu8J5f3796tnz56a\nOnWq6fvdmRgXmPt3yYpjAsna4wKrjQkka44LGBO0YUxg+Mm7775rTJo0yft6+fLlxvLly/3VnA53\n4sQJY/jw4d7XN954o3HmzBnDMAzj9OnTxo033uivpnWae+65x9i+fbtl+v7ll18aY8aMMY4cOWKJ\nPhcUFBgTJkwwdu3aZXzzm980DMP8v+fR0dHG2bNna60ze5/LysqMwYMH11tv9n7X9Pe//9247bbb\nDMOwVr87GuMCa/0uWW1MYBjWGhdYcUxgGNYbFzAmaNuYwG8Z8aKiIkVFRXlfOxwOFRUV+as5na64\nuFh2u12SuwJ9cXGxn1vUsU6ePKmDBw9q3Lhxpu97dXW1Ro8eLbvd7p2GZ/Y+S9IPfvADPfXUUwoJ\nufJnxez9ttls+sY3vqExY8boD3/4gyTz9/nEiRPq37+/5syZo6985St68MEH9eWXX5q+3zVt3LhR\n6enpksz/792ZGBdY53fJSmMCyZrjAiuOCSTrjQsYE7RtTOC3QJwCLVc0dx/2YHfhwgVNnz5dq1at\nUu/evWttM2PfQ0JCdOjQIRUWFuqtt97S7t27a203Y5+3bNmiAQMGKDExsdF7AJux3++8844OHjyo\nN998U88884z+8Y9/1Npuxj5fvnxZBw4c0MKFC3XgwAH16tWr3tQrM/bbo7KyUm+88Ya+9a1v1dtm\n5n53Bn52V5j5d8lqYwLJeuMCq44JJOuNCxgTtG1M4LdAvO79RAsKCuRwOPzVnE7nuQ+7pCbvwx7s\nPPeRnzVrlvcWd1bpe58+fXT33Xdr//79pu/zu+++q82bN2vw4MFKT0/Xrl27NGvWLNP3+9prr5Uk\n9e/fX1OnTlVubq7p++xwOORwOHTzzTdLku69914dOHBAAwcONHW/Pd58803ddNNN6t+/vyTr/D3r\nDIwLzP+7ZOUxgWSdcYFVxwSS9cYFjAnaNibwWyA+ZswY5efn6+TJk6qsrNSmTZuUlpbmr+Z0upbc\nhz3YGY3cR97MfT979qy3QuKlS5e0fft2JSYmmrrPkrRs2TIVFBToxIkT2rhxo8aPH68XX3zR1P2+\nePGizp8/L0n68ssvtW3bNo0YMcLUfZakgQMHKioqSsePH5ck7dixQ8OGDVNqaqqp++2xYcMG7xQ0\nydx/zzob4wJz/y5ZcUwgWXNcYMUxgWTNcQFjgjaOCTr06vVmbN261YiLizNuuOEGY9myZf5sSoea\nOXOmce211xphYWGGw+Ew1q1bZ3z++efGhAkTjNjYWCM5OdkoLS31dzPb3T/+8Q/DZrMZo0aNMkaP\nHm2MHj3aePPNN03d98OHDxuJiYnGqFGjjBEjRhgrV640DMMwdZ/rcjqdRmpqqmEY5u73xx9/bIwa\nNcoYNWqUMWzYMO/fMDP32ePQoUPGmDFjjJEjRxpTp041ysrKLNHvCxcuGNdcc41x7tw57zor9Lsz\nMS4w7++SFccEhsG4wCpjAsOw7riAMYHvYwKbYTRy8QYAAAAAAGh3fpuaDgAAAACAFRGIAwAAAADQ\niQjEAQAAAADoRATiAAAAAAB0IgJxAAAAAAA6EYE4AAAAAACd6P8DaeatjYMIwakAAAAASUVORK5C\nYII=\n"
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fundamental differences to Matlab\n",
"\n",
"### Arrays are indexed from 0"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a = arange(10)\n",
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[0], a[9])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0 9\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[10]) # does not work!"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "IndexError",
"evalue": "index out of bounds",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-13-a88eda7ab931>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# does not work!\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mIndexError\u001b[0m: index out of bounds"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ranges always *exclude* the last element"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a = arange(10)\n",
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[5:7])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[5 6]\n"
]
}
],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[5:])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[5 6 7 8 9]\n"
]
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[:5])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4]\n"
]
}
],
"prompt_number": 17
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[-3:])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[7 8 9]\n"
]
}
],
"prompt_number": 18
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[2:-2:2])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[2 4 6]\n"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a[::-1])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[9 8 7 6 5 4 3 2 1 0]\n"
]
}
],
"prompt_number": 20
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ranges do not copy"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a = arange(10)\n",
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"b = a[2:-2]\n",
"b[2:-2] = 0\n",
"print(b)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[2 3 0 0 6 7]\n"
]
}
],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 0 0 6 7 8 9]\n"
]
}
],
"prompt_number": 23
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a = arange(10)\n",
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"c = array(a[2:-2])\n",
"c[2:-2] = 0\n",
"print(c)\n",
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[2 3 0 0 6 7]\n",
"[0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Arrays are *strongly typed*"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a = arange(10, dtype=int8) # an 8 bit integer\n",
"print(a)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(a * 32) # integer overflow, since MAX_INT8 == 128!!"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 0 32 64 96 -128 -96 -64 -32 0 32]\n"
]
}
],
"prompt_number": 27
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# wavread has a different name in Python:\n",
"from scipy.io.wavfile import read as wavread\n",
"\n",
"fs, signal = wavread('Mann_short.wav')\n",
"time = linspace(0, len(signal)/fs, len(signal))\n",
"plot(time, signal)\n",
"title('speech sample (%s)' % signal.dtype) # signal.dtype is typically int16!\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nai9IAAAAAElFTkSuQmCC\n"
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# xcorr has a different name in Python:\n",
"xcorr = lambda x, y: correlate(x, y, mode='full')\n",
" \n",
"signal_short = signal[fs:2*fs] # also, it's dog slow.\n",
"plot(xcorr(signal_short, signal_short))\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nap5Z7s0AAAAASUVORK5CYII=\n"
}
],
"prompt_number": 29
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"signal_short = array(signal[fs:2*fs], dtype=float64)\n",
"signal_short /= 2**15 # 2^15 == MAX_INT16\n",
"plot(xcorr(signal_short, signal_short))\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 30
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment