-
-
Save csharpforevermore/749cf7f40a52317e1dfe7e7df65693ea to your computer and use it in GitHub Desktop.
Numpy Arrays and Objects
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:404ffc885e3599a6222dcd164ddbceef9ba96c91237f97885c63aa7b2e3e0bcc" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import numpy as np\n", | |
"\n", | |
"# Slide 8\n", | |
"myonedim = np.array(range(0,9))\n", | |
"print myonedim\n", | |
"\n", | |
"# This makes an array out of a nested sequence (can be nested tuples, nested lists, or combination of them)\n", | |
"a = [ [[1,2],[3,4]],\n", | |
" [[5,6],[7,8]],\n", | |
" [[9,10],[11,12]]\n", | |
" ]\n", | |
"print a\n", | |
"print a[0]\n", | |
"print a[0][0]\n", | |
"print a[0][0][1]" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 9\n", | |
"# Arange\n", | |
"\n", | |
"import numpy as np\n", | |
"print np.arange(3)\n", | |
"print np.arange(3.0)\n", | |
"print np.arange(3, dtype=float)\n", | |
"print np.arange(3,10) # start,stop\n", | |
"print np.arange(3,10,2) # start,stop,step" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 9\n", | |
"# Linspace\n", | |
"print np.linspace(2.0, 3.0, num=5)\n", | |
"print np.linspace(2.0, 3.0, num=5, endpoint=False)\n", | |
"print np.linspace(2.0, 3.0, num=5, retstep=True)\n", | |
"\n", | |
"# Logspace\n", | |
"print np.logspace(0,4,5)\n", | |
"np.set_printoptions(suppress=True)\n", | |
"print np.logspace(0,4,5)\n" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 9\n", | |
"# Mgrid\n", | |
"\n", | |
"import numpy as np\n", | |
"## 2 rows and 4 columns\n", | |
"mygrid = np.mgrid[0:2, 0:4]\n", | |
"grid_x, grid_y = np.mgrid[0:2, 0:4]\n", | |
"print mygrid\n", | |
"print grid_x\n", | |
"print grid_y\n", | |
"# Change the numbers and see what happens" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 9\n", | |
"# Random\n", | |
"from numpy import random\n", | |
"# uniform random numbers in [0,1]\n", | |
"print random.rand(2,5)\n", | |
" \n", | |
"# standard normal distributed random numbers\n", | |
"print random.randn(5,2)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 9\n", | |
"import numpy as np\n", | |
"\n", | |
"# a diagonal matrix\n", | |
"print np.diag([1,2,3])\n", | |
" \n", | |
"# diagonal with offset from main diagonal\n", | |
"print np.diag([1,2,3], k=2)\n", | |
"\n", | |
"# matrix with all zeros\n", | |
"print np.zeros([3,3])\n", | |
"\n", | |
"# matrix with all ones\n", | |
"print np.ones([3,3])" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 10\n", | |
"\n", | |
"# Create a csv file in spreadsheet -- mycsv.csv\n", | |
"# Name, Age Height\n", | |
"# Tom, 23, 167\n", | |
"# Dick, 28, 172\n", | |
"# Mary, 27, 168\n", | |
"\n", | |
"import numpy as np \n", | |
"mydata = np.loadtxt('mycsv.csv', delimiter=',', dtype=str)\n", | |
"print mydata\n", | |
"print mydata.dtype\n", | |
"\n", | |
"\n", | |
"# Another method\n", | |
"mydata = np.genfromtxt('myfile.csv', dtype=float, delimiter=',', names=True) \n", | |
"print mydata" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 10\n", | |
"# Another example\n", | |
"# Create a a csv file with ALL numbers and no headers -- myfile.csv\n", | |
"# 12,23,45\n", | |
"# 1,34,54\n", | |
"# 3,4,67\n", | |
"\n", | |
"import numpy as np\n", | |
"# Simpler version\n", | |
"mydata = np.genfromtxt('myfile.csv', delimiter=',') " | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 10\n", | |
"# NPY format\n", | |
"from numpy import random as nrand\n", | |
"a = nrand.randn(2,3)\n", | |
"np.save('myarray', a)\n", | |
"np.load('myarray.npy')" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 10\n", | |
"# NPZ format\n", | |
"import numpy as np\n", | |
"a = np.array([[3, 2, 1], [7, 8, 9]])\n", | |
"b = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])\n", | |
"np.savez('myarrays.npz', a=a, b=b)\n", | |
"myarraydata = np.load('myarrays.npz')\n", | |
"myarraydata['a'] \n", | |
"myarraydata['b']\n", | |
"myarraydata.close()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 15\n", | |
"print a[0:2,0:2]\n", | |
"print a[1:3,1:3]\n", | |
"print a[2:,2:]" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 16\n", | |
"import numpy as np\n", | |
"a = np.reshape(np.arange(9),(3,3))\n", | |
"# for row sums\n", | |
"for r in range(a.shape[0]):\n", | |
" print sum(a[r,:])\n", | |
"# for column sums\n", | |
"for r in range(a.shape[1]):\n", | |
" print sum(a[:,r])" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 19\n", | |
"import numpy as np\n", | |
"y = np.zeros((2, 3, 4))\n", | |
"y.shape\n", | |
"\n", | |
"\n", | |
"x = np.array([[1, 2],\n", | |
" [3, 4],\n", | |
" [5, 6]\n", | |
" ]) \n", | |
"print x\n", | |
"print x.T" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 20\n", | |
"import numpy as np\n", | |
"x.diagonal()\n", | |
"x.diagonal(offset=1)\n", | |
"x.diagonal(offset=-1)\n", | |
"\n", | |
"import numpy as np\n", | |
"a = np.array(range(9))\n", | |
"b = a.reshape(3,3)\n", | |
"print b" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 22\n", | |
"# Dot product is like matrix multiplication\n", | |
"a = [[1, 0], [0, 1]]\n", | |
"b = [[4, 1], [2, 2]]\n", | |
"print np.dot(a, b)\n", | |
"\n", | |
"# Ref http://cs.brown.edu/courses/cs053/current/slides/The_Matrix-6.pdf\n", | |
"\n", | |
"# Inner product with vectors\n", | |
"a = np.array([1,2,3])\n", | |
"b = np.array([0,1,0])\n", | |
"print np.inner(a, b)\n", | |
"\n", | |
"# Inner product with arrays\n", | |
"a = np.arange(6).reshape((2,3))\n", | |
"b = np.arange(3)\n", | |
"print np.inner(a, b)\n", | |
"\n", | |
"# Outer product\n", | |
"a = [1, 2]\n", | |
"b = [1, 2, 3]\n", | |
"print np.outer(a, b)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 24\n", | |
"import numpy as np\n", | |
"from scipy import linalg\n", | |
"A = np.array([[1,2],[3,4]])\n", | |
"print linalg.inv(A)\n", | |
"print A.dot(linalg.inv(A)) #double check" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 31\n", | |
"import numpy as np\n", | |
"A = np.matrix([[1,2,3],[0,2,4],[0,0,3]])\n", | |
"print A\n", | |
"b = np.matrix([[2],[1],[4]])\n", | |
"print b\n", | |
"x = A.I*b\n", | |
"print x" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 35\n", | |
"# Using arrays\n", | |
"\n", | |
"import numpy as np\n", | |
"xi = [3,2,8,5,2,6,3,7,5,3]\n", | |
"X = np.array(zip(np.ones(10),xi))\n", | |
"y = [6,3,11,6,3,9,4,12,7,5]\n", | |
"XTX = np.dot(X.T,X)\n", | |
"XTXinv = np.linalg.inv(XTX)\n", | |
"XTy = np.dot(X.T,y)\n", | |
"b = np.dot(XTXinv, XTy)\n", | |
"print b" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Slide 35\n", | |
"# Using matrices\n", | |
"\n", | |
"import numpy as np\n", | |
"xi = [3,2,8,5,2,6,3,7,5,3]\n", | |
"X = np.array(zip(np.ones(10),xi))\n", | |
"y = [6,3,11,6,3,9,4,12,7,5]\n", | |
"X = np.matrix(zip(np.ones(10),xi))\n", | |
"y = np.reshape(y,(10,1))\n", | |
"b = (X.T*X).I*X.T*y\n", | |
"print b" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment