Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save csharpforevermore/749cf7f40a52317e1dfe7e7df65693ea to your computer and use it in GitHub Desktop.
Save csharpforevermore/749cf7f40a52317e1dfe7e7df65693ea to your computer and use it in GitHub Desktop.
Numpy Arrays and Objects
Display the source blob
Display the rendered blob
Raw
{
"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