{ "cells": [ { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$\\sqrt{x^2+y^2}$" ], "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Latex\n", "Latex(r\"$\\sqrt{x^2+y^2}$\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name 'install_mathjax'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexternal\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmathjax\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0minstall_mathjax\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0minstall_mathjax\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mImportError\u001b[0m: cannot import name 'install_mathjax'" ] } ], "source": [ "from IPython.external.mathjax import install_mathjax\n", "install_mathjax()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/supermap/anaconda3/envs/GISpark/lib/python3.5/site-packages/IPython/extensions/sympyprinting.py:31: UserWarning: The sympyprinting extension has moved to `sympy`, use `from sympy import init_printing; init_printing()`\n", " warnings.warn(\"The sympyprinting extension has moved to `sympy`, \"\n" ] }, { "ename": "ImportError", "evalue": "No module named 'sympy'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;31m#from sympy import *\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m#import sympy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0msympy\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0minit_printing\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[0minit_printing\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msymbols\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"x,y\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mImportError\u001b[0m: No module named 'sympy'" ] } ], "source": [ "%reload_ext sympyprinting\n", "#from sympy import *\n", "#import sympy\n", "from sympy import init_printing\n", "init_printing()\n", "x, y = symbols(\"x,y\")\n", "sqrt(x**2+y**2)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "from IPython.display import Image\n", "Image(filename=\"python.png\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "ename": "TypeError", "evalue": "Layout of the output array dst is incompatible with cv::Mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdisplay\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mImage\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mimg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m255\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mcv2\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mblur\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;36m11\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m11\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mimg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[0mr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdat\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mimencode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\".png\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mimg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mImage\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdat\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtostring\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mTypeError\u001b[0m: Layout of the output array dst is incompatible with cv::Mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels)" ] } ], "source": [ "import cv2\n", "import numpy as np\n", "from IPython.display import Image\n", "img = np.random.randint(0,255,(250,250,3))\n", "cv2.blur(img, (11,11), img)\n", "r, dat = cv2.imencode(\".png\",img)\n", "Image(dat.tostring())" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "alert('JavaScript call, ok!客户端调用')" ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Javascript\n", "Javascript(\"alert('JavaScript call, ok!客户端调用')\")" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 62.86 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "10000000 loops, best of 3: 17.5 ns per loop\n", "10000000 loops, best of 3: 14 ns per loop\n", "The slowest run took 85.72 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "10000000 loops, best of 3: 16.3 ns per loop\n" ] } ], "source": [ "%timeit 1 + 1\n", "%timeit 1.0 + 1.0\n", "%timeit \"1\" + \"1\"\n", "\n", "#10000000 loops, best of 3: 52 ns per loop\n", "#10000000 loops, best of 3: 53.4 ns per loop\n", "#10000000 loops, best of 3: 50.9 ns per loop\n", "\n", "#%%timeit\n", "s = 0\n", "for i in range(100):\n", " s += i\n", "\n", "#100000 loops, best of 3: 11 us per loop" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "image/png": "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\nuF7PBqeFWAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "plot(random.randn(100));" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "%load http://matplotlib.org/mpl_examples/pylab_examples/histogram_demo.py\n", "\n", "#!/usr/bin/env python\n", "import numpy as np\n", "import matplotlib.mlab as mlab\n", "import matplotlib.pyplot as plt\n", "\n", "mu, sigma = 100, 15\n", "x = mu + sigma*np.random.randn(10000)\n", "\n", "# the histogram of the data\n", "n, bins, patches = plt.hist(x, 50, normed=1, facecolor='green', alpha=0.75)\n", "\n", "# add a 'best fit' line\n", "y = mlab.normpdf( bins, mu, sigma)\n", "l = plt.plot(bins, y, 'r--', linewidth=1)\n", "\n", "plt.xlabel('Smarts')\n", "plt.ylabel('Probability')\n", "plt.title(r'$\\mathrm{Histogram\\ of\\ IQ:}\\ \\mu=100,\\ \\sigma=15$')\n", "plt.axis([40, 160, 0, 0.03])\n", "plt.grid(True)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " " ] } ], "source": [ "%%prun\n", "for i in range(100):\n", " linalg.det(random.rand(10,10))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }