{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Array creation\n", "shape = (3,4)\n", "dtype = np.int32\n", "order = 'C'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-2043364424, 32730, 1725429712, 21959],\n", " [ 0, 0, 0, 0],\n", " [ 0, 0, 0, 0]], dtype=int32)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Creates array without initializing entries\n", "array1 = np.empty(shape, dtype)\n", "array1" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-2043364488, 32730, -2043364488, 32730],\n", " [ 0, 0, 0, 0],\n", " [ 1760273608, 32730, 1760273672, 32730]], dtype=int32)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Returns array with same shape and type as given array\n", "array2 = np.empty_like(array1)\n", "array2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 0. 0. 0.]\n", " [ 0. 1. 0. 0.]\n", " [ 0. 0. 1. 0.]\n", " [ 0. 0. 0. 1.]]\n", "[[ 1. 0.]\n", " [ 0. 1.]\n", " [ 0. 0.]\n", " [ 0. 0.]]\n", "[[ 0. 1. 0. 0.]\n", " [ 0. 0. 1. 0.]\n", " [ 0. 0. 0. 1.]\n", " [ 0. 0. 0. 0.]]\n" ] } ], "source": [ "# Returns a 2-D matrix with ones on diagonal and zeros elsewhere\n", "array3 = np.eye(N=4)\n", "print(array3)\n", "\n", "array4 = np.eye(N=4,M=2)\n", "print(array4)\n", "\n", "array5 = np.eye(N=4, k=1)\n", "print(array5)\n", "# k defines the amount by which you want to shift the main diagonal" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1., 0., 0., 0.],\n", " [ 0., 1., 0., 0.],\n", " [ 0., 0., 1., 0.],\n", " [ 0., 0., 0., 1.]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To get a identity matrix\n", "np.identity(4)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[[ 1., 1.],\n", " [ 1., 1.],\n", " [ 1., 1.]],\n", "\n", " [[ 1., 1.],\n", " [ 1., 1.],\n", " [ 1., 1.]],\n", "\n", " [[ 1., 1.],\n", " [ 1., 1.],\n", " [ 1., 1.]],\n", "\n", " [[ 1., 1.],\n", " [ 1., 1.],\n", " [ 1., 1.]]], dtype=float32)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.ones((4,3,2), dtype=np.float32)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 1, 1, 1],\n", " [1, 1, 1, 1],\n", " [1, 1, 1, 1]], dtype=int32)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.ones_like(array1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0, 0, 0, 0],\n", " [0, 0, 0, 0],\n", " [0, 0, 0, 0]], dtype=int32)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.zeros_like(array1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0., 0., 0., 0.],\n", " [ 0., 0., 0., 0.],\n", " [ 0., 0., 0., 0.]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.zeros(shape)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 10., 10., 10.],\n", " [ 10., 10., 10.],\n", " [ 10., 10., 10.],\n", " [ 10., 10., 10.]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To create an array with your specified value in all the cells\n", "np.full((4,3), fill_value=10.)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.+9.j, 1.+9.j, 1.+9.j, 1.+9.j],\n", " [ 1.+9.j, 1.+9.j, 1.+9.j, 1.+9.j],\n", " [ 1.+9.j, 1.+9.j, 1.+9.j, 1.+9.j]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.full_like(array1, fill_value=1+9j, dtype=complex)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3.87194212, 6.0227274 , 9.40008761, 1.55617568],\n", " [ 1.62449474, 8.24526602, 8.9153371 , 0.13569454],\n", " [ 1.31895575, 5.89019258, 8.51156338, 2.12524318]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# So far we discussed a new array creation and \n", "# now we discuss how to create a new array using existing data\n", "ref_array = 10*np.random.rand(3,4)\n", "ref_array" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 3 6 15 1]\n", " [ 1 8 8 0]\n", " [ 1 5 8 2]]\n", "[[ 3 10 15 1]\n", " [ 1 8 8 0]\n", " [ 1 5 8 2]]\n", "[[ 3.87194212 6.0227274 15. 1.55617568]\n", " [ 1.62449474 8.24526602 8.9153371 0.13569454]\n", " [ 1.31895575 5.89019258 8.51156338 2.12524318]]\n", "\n", " [[ 3.87194212 6.0227274 15. 1.55617568]\n", " [ 1.62449474 8.24526602 8.9153371 0.13569454]\n", " [ 1.31895575 5.89019258 8.51156338 2.12524318]]\n", "[[ 3.87194212 6.0227274 15. 1.55617568]\n", " [ 1.62449474 8.24526602 8.9153371 0.13569454]\n", " [ 1.31895575 5.89019258 8.51156338 2.12524318]]\n" ] } ], "source": [ "array1 = np.array(ref_array, dtype=np.int, copy=True, order='C')\n", "print(array1)\n", "\n", "# Now why we copied\n", "array1[0,1] = 10\n", "print(array1)\n", "print(ref_array)\n", "\n", "# Now if we didn't copy\n", "array2 = np.array(ref_array, copy=False)\n", "array2[0,2] = 15\n", "print('\\n', array2)\n", "\n", "print(ref_array)\n", "# As you can notice that if we didn.t copy than the array from which\n", "# we copied also got the changes" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 3.87194212 6.0227274 15. 1.55617568]\n", " [ 1.62449474 8.24526602 8.9153371 0.13569454]\n", " [ 1.31895575 5.89019258 8.51156338 2.12524318]]\n", "[[4 5 6]\n", " [1 2 3]]\n" ] } ], "source": [ "# To create an array from objects that can be converted to arrays\n", "# like lists, tuples, ndarrays\n", "array2 = np.asarray(ref_array)\n", "print(array2)\n", "\n", "array3 = np.asarray([[4,5,6],[1,2,3]])\n", "print(array3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3.87194212, 6.0227274 , 15. , 1.55617568],\n", " [ 1.62449474, 8.24526602, 8.9153371 , 0.13569454],\n", " [ 1.31895575, 5.89019258, 8.51156338, 2.12524318]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To get a contiguous array in memory\n", "array4 = np.ascontiguousarray(ref_array)\n", "array4" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3.87194212, 6.0227274 , 15. , 1.55617568],\n", " [ 1.62449474, 8.24526602, 8.9153371 , 0.13569454],\n", " [ 1.31895575, 5.89019258, 8.51156338, 2.12524318]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To simply copy an array\n", "array5 = np.copy(ref_array)\n", "array5" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "'str' object has no attribute '__buffer__'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mdt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnewbyteorder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'>'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrombuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'hello'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'str' object has no attribute '__buffer__'" ] } ], "source": [ "# if you want to create an array from a buffer say a srtring\n", "dt = np.dtype(int)\n", "dt = dt.newbyteorder('>')\n", "np.frombuffer('hello', dtype=dt)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([5432882060864155506, 2336646335973647726, 8391061973054070892,\n", " 7306655128079005285, 7882828167451910189, 2338616291577788005,\n", " 2337208112243304814, 7286934626993310315, 2318545067618364783,\n", " 8531260732088852588, 7597120811504241260, 2318545058932418676,\n", " 2336646335973647726, 8361506904289124397, 4476706050239985769,\n", " 8367818302828869481, 8388076856227689313, 8532472353939220577,\n", " 7955438811540518769, 2318577692278988901, 8676593839527851109,\n", " 8223699782014168679, 2334669371110750240, 3260078864715506789,\n", " 7810777106429012069, 2333823799648150388, 7309940812453342836,\n", " 7306000102812836725, 8247057878230919456, 3260078864715507557,\n", " 8367804030775140457, 7958816508742757743, 7234224000819227936,\n", " 8388065495758692722, 7017580623428612207, 7597137600240968313,\n", " 2333838166331453962, 6998643565789474592, 7450488841110975599,\n", " 2335519323670606880, 7885631858047087215, 7863412941110931045,\n", " 8679597993174856289, 7166464447898218345, 7959097922184968480,\n", " 7166760222146562570, 7239290304709293167, 2334102023117759776,\n", " 7382085253699171698, 8317992520494181484, 2334393358181426720,\n", " 8606223186924938272, 3260078864715506789, 7810777106428097135,\n", " 7863394305471377266, 2338610020903580776, 7286935721886117734,\n", " 2336358228040115232, 3260078864715506789, 7810777106429012069,\n", " 2333831547736319348, 7286943397164943882, 8439795446548033312,\n", " 8461811178324387941, 2336349455195857251, 8388358299364696109,\n", " 4476706050241031780, 8007507255763170408, 7286933497047836517,\n", " 8295746435327008876, 7597120715852098878, 2338616291577788005,\n", " 2338616291694765344, 8319381555862597478, 2336358229560920665,\n", " 8031361121693606005, 8315087945798083173, 8246970979836780908,\n", " 7791355347073000303, 7885065649355169908, 8007525917467697524,\n", " 2338608891343959144, 7022273377766040165, 8223695404000373101,\n", " 7310197658759689330, 7794999917943857268, 8007513822902379381,\n", " 8246765392737889385, 7954799975608443493, 8223680046332667497,\n", " 7810684787197043978, 5125146120803348256, 7885651649257303840,\n", " 7093015981566271599, 7358994394099550823, 7430989130017042208,\n", " 7885651649257303840, 8319381555862597478, 2334669371110732857,\n", " 3478784615854929007, 2336646335968605295, 2336358229562388085,\n", " 7881973838692759856, 723442862983570783, 8606223187290439200,\n", " 8389960259432641647, 2334669397122359411, 8029185171371553380,\n", " 2333258732058845300, 7522454419870542196, 7597412181984288867,\n", " 8462953572274433568, 3260078864715509103, 8531260753575964261,\n", " 8679598062012556639, 8606223186923495469, 4476706050240898401,\n", " 8242546231384961568, 8388065496026672485, 6879089492928522606,\n", " 2338042715741254501, 2334106446932964457, 8029390821770210848,\n", " 7237970109630082415, 8289507829152048416, 8099849692699238445,\n", " 4476706050240898401, 7163010831661277299, 8029184900670714465,\n", " 8315063571842231341, 8007449882320465696, 7453211592774153320,\n", " 7286947833716304239, 8463143792037554548, 7597412181984288867,\n", " 8462953572274422644, 8245014809904234016, 8389960285208077600,\n", " 8389960315154276462, 7311721677710127988, 7597412181984288867,\n", " 8462953572274407973, 2318577692278988903, 8007528129186786657,\n", " 8386661733127102576, 8030878509237759520, 8027138987362640242,\n", " 7020676860844665203, 737028136615699830, 7597420233974769016,\n", " 8367737852509971824, 7809632516211504232, 7286936800163230752,\n", " 8026368316985929315, 7286946681507050085, 8532473519263479657,\n", " 8387989990317301870, 7311721677592600673, 2336358229560932979,\n", " 3418357897278091125, 8299974020358745959, 2318577692244799596,\n", " 7017564189512264812, 2337196010451920238, 7166107094903451762,\n", " 7311146972515344503, 7598812959781255284, 2339461068539062638,\n", " 2333181731952026890, 4189881675908146223, 7954895362297179454,\n", " 2338616291409551726, 7450396821335274866, 7308888531255911968,\n", " 8028902326299882600, 2336916818971160096, 8388065496094240620,\n", " 7286936800061622842, 2698552757331439470, 7311364641150479678,\n", " 2338616291459952228, 2334402159945785455, 7161696966637675365,\n", " 2337199021122937888, 8604536553637569911, 2333267458274059636,\n", " 2333181749282958704, 8367819397849686132, 8007510565540471596,\n", " 2554437569255583598, 7311364640027262496, 8389960306514750561,\n", " 7162166479645075488, 8028902326299882600, 2336916818971160096,\n", " 8388065496009895527, 7286951123660007782, 7594586436884045859,\n", " 2842626828842132335, 7885065649349733694, 2338616291695882341,\n", " 2333181693397921121, 7954518444758559086, 2333181749282958704,\n", " 8367795234408523128, 7305812163298353523, 2333181761999432812,\n", " 2333831547685269092, 723454973463382348, 4994000836928482622,\n", " 2338616291677533797, 2333181706182092064, 8389960315154559776,\n", " 5064663116504190277, 736938264369317449, 5495884962651775021,\n", " 4476706050240832877, 8031718175528215840, 5064663116504190277,\n", " 753825366319068271, 2335232299646085479, 7503123901613154416,\n", " 7021802451680764020, 7522454368329889133, 7308906927691293728,\n", " 8388065829642596965, 8319028370339143777, 7954518526182911520,\n", " 4212871355116319855, 2338319792666080360, 7022273386020762656,\n", " 8027139070174240870, 7596557766071820358, 5281672665404097824,\n", " 3260078864715510373, 8390884940243607668, 7522454436882969632,\n", " 8027139070174524192, 5064663116504190277, 2333273764695401760,\n", " 8101821151424638830, 2337199021206562080, 7166760222146562618,\n", " 8223609669250198846, 2338616291627917667, 7286952188807507829,\n", " 8390335247412061728, 8388065495759154541, 7881702199194839406,\n", " 7286940118797281381, 2339172973881485676, 7280643219995311648,\n", " 8389960298041271141, 2333181740475424876, 7597120811168068709,\n", " 8223682275661016946, 2333267458273930868, 7309940644394517842,\n", " 6061965423633828431, 2318577692278988912, 7809632514823233646,\n", " 7311348170056688928, 7090185817211347043, 8462953572275872110,\n", " 7214878127870469490, 2326476802065847328, 7885631857677901869,\n", " 4476706050240507766, 7286955517629702263, 7598528186186342497,\n", " 2336358229560942880, 3260078864715508078, 8315178130095763232,\n", " 8388065495943051380, 2337490748086446447, 7935465027847550322,\n", " 8317992425144462654, 2338616291510612837, 8247252502074913896,\n", " 7286935721886117734, 2338608890057091438, 7280643262944984608,\n", " 8389960242258016544, 8388065495842645864, 7811888726977897504,\n", " 8387242320834076717, 4476706050240700787, 8387121397853334846,\n", " 2338616291426398821, 7166472174543531888, 8367816099376428911,\n", " 8242748880955929704, 7286933553167953778, 723454957444145257,\n", " 7142758753865330464, 7595160721523286132, 7522454363801085216,\n", " 8604243002365342565, 7021784069120616202, 4211821625955871859,\n", " 2335524463803506804, 8007527017041913961, 7451324783446750240,\n", " 8315159430931423329, 7954518444797620000, 7597118964399695214,\n", " 8367814986918159208, 737028368605671023, 7593948775364719727,\n", " 2334106373868774688, 7595160721523286115, 7022067434117425516,\n", " 7286951076349240168, 7597122915048580468, 2336927750938632237,\n", " 4476706050239916385, 7092154703066785640, 7811888726973379685,\n", " 8679573420895659372, 8079507476358393632, 7450488841093606512,\n", " 739562798608897824, 4860635706782326829, 4476706050239850593,\n", " 7955438456873250080, 8604529940713927434, 4208725368189772142,\n", " 8745818331605200225, 7954518220531069807, 7882742334225214817,\n", " 7954609424754173216, 8587274200660792402, 5489118477147532915,\n", " 7310032883566928997, 8659331872345911853, 7881702273299802730])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To create an array from a file\n", "dt = np.dtype(int)\n", "dt = dt.newbyteorder('>')\n", "np.fromfile(file='vimTutorial.txt', dtype=dt)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "'str' object cannot be interpreted as an integer", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# To create a character array\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchararray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'b'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/numpy/core/defchararray.py\u001b[0m in \u001b[0;36m__new__\u001b[0;34m(subtype, shape, itemsize, unicode, buffer, offset, strides, order)\u001b[0m\n\u001b[1;32m 1833\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbuffer\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1834\u001b[0m self = ndarray.__new__(subtype, shape, (dtype, itemsize),\n\u001b[0;32m-> 1835\u001b[0;31m order=order)\n\u001b[0m\u001b[1;32m 1836\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1837\u001b[0m self = ndarray.__new__(subtype, shape, (dtype, itemsize),\n", "\u001b[0;31mTypeError\u001b[0m: 'str' object cannot be interpreted as an integer" ] } ], "source": [ "# To create a character array\n", "np.chararray" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 4, 7])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# it creates an array from starting=1 to end=10 taking strides=3\n", "np.arange(start=1, stop=10, step=3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To divide the number into equal number of sample\n", "np.linspace(start=1,stop=10, num=10, endpoint=True)\n", "# endp[oint specifies whether to include the endpoint in the smaples" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1.00000000e+01 1.00000000e+02 1.00000000e+03 1.00000000e+04\n", " 1.00000000e+05 1.00000000e+06 1.00000000e+07 1.00000000e+08\n", " 1.00000000e+09 1.00000000e+10] \n", "\n", "[ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]\n" ] } ], "source": [ "# To get numbers on a logspace\n", "# It starts at base**start and ends with base**stop\n", "array1= np.logspace(start=1, stop=10, num=10, endpoint=True, base=10)\n", "print (array1, '\\n')\n", "\n", "array2 = np.logspace(start=1, stop=10, num=10, base=2)\n", "print(array2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1. 1.29154967 1.66810054 2.15443469 2.7825594\n", " 3.59381366 4.64158883 5.9948425 7.74263683 10. ] \n", "\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "1.29154966501\n", "\n", " [ 1. 10. 100. 1000.]\n" ] } ], "source": [ "# Each output is a constant multiple of previous output\n", "array3 = np.geomspace(start=1, stop=10, num=10)\n", "print(array3, '\\n')\n", "\n", "for a in range(1,10):\n", " print(array3[a]/array3[a-1])\n", "\n", "array4 = np.geomspace(start=1, stop=1000, num=4)\n", "print('\\n', array4)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 3.87194212 6.0227274 15. 1.55617568]\n", " [ 1.62449474 8.24526602 8.9153371 0.13569454]\n", " [ 1.31895575 5.89019258 8.51156338 2.12524318]] \n", "\n" ] }, { "data": { "text/plain": [ "array([ 6.0227274 , 8.9153371 , 2.12524318])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To extract a diagonal from a matrix\n", "print(ref_array, '\\n')\n", "\n", "np.diag(ref_array, k=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 3.87194212 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. 0. ] \n", "\n", "[ 0. 6.0227274 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. ] \n", "\n", "[ 0. 0. 15. 0. 0. 0. 0. 0. 0. 0. 0. 0.] \n", "\n", "[ 0. 0. 0. 1.55617568 0. 0. 0.\n", " 0. 0. 0. 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 1.62449474 0. 0.\n", " 0. 0. 0. 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 8.24526602\n", " 0. 0. 0. 0. 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 0. 8.9153371\n", " 0. 0. 0. 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 0. 0.\n", " 0.13569454 0. 0. 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 0. 0.\n", " 0. 1.31895575 0. 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 5.89019258 0. 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 8.51156338 0. ] \n", "\n", "[ 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. 2.12524318] \n", "\n" ] } ], "source": [ "array5 = np.diagflat(ref_array , k=0)\n", "for a in array5:\n", " print(a, '\\n')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 1, 1],\n", " [ 1, 2, 4],\n", " [ 1, 3, 9],\n", " [ 1, 5, 25]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To generate a vandemonde matrix\n", "# The columns of output matrix are powers of input vector\n", "x = np.vander(np.array([1,2,3,5]), N=3, increasing=True)\n", "x" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "1\n" ] } ], "source": [ "# Matrix\n", "# Interpret the input as a matrix\n", "x = np.array([[1,2], [3,4]])\n", "m = np.mat(x)\n", "print(x[0,0])\n", "print(m[0,0])\n", "\n", "# What this allows is allow you to use matrix operations on the numpy array\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3.46824036, 7.67681693, 8.2756161 , 7.32539822],\n", " [ 4.8000464 , 6.80180895, 5.63463621, 8.51450354],\n", " [ 0.82627203, 0.50071077, 1.99507292, 6.79505002]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Basic operations\n", "ref_array = 10*np.random.rand(3,4)\n", "ref_array" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4 5 6 7 8 9]\n" ] } ], "source": [ "# Chaning array shape\n", "ref_array = np.arange(10)\n", "print(ref_array)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0, 1],\n", " [2, 3],\n", " [4, 5],\n", " [6, 7],\n", " [8, 9]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ref_array = ref_array.reshape(5,2)\n", "ref_array" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To get a contiguous flattened array\n", "np.ravel(ref_array)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0, 2, 4, 6, 8],\n", " [1, 3, 5, 7, 9]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Transposiing\n", "ref_array = np.transpose(ref_array)\n", "ref_array" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[[0]],\n", "\n", " [[1]],\n", "\n", " [[2]],\n", "\n", " [[3]],\n", "\n", " [[4]],\n", "\n", " [[5]],\n", "\n", " [[6]],\n", "\n", " [[7]],\n", "\n", " [[8]],\n", "\n", " [[9]]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# if you want to expand shape of an array\n", "ref_array = np.expand_dims(ref_array, axis=2)\n", "ref_array" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[[14 37]\n", " [49 2]\n", " [37 23]]\n", "\n", " [[23 47]\n", " [47 46]\n", " [14 21]]\n", "\n", " [[27 10]\n", " [49 42]\n", " [45 23]]\n", "\n", " [[49 29]\n", " [22 20]\n", " [17 24]]] \n", " [[[ 7 46 21]\n", " [39 32 11]\n", " [23 25 7]]\n", "\n", " [[22 39 20]\n", " [25 22 7]\n", " [15 30 20]]\n", "\n", " [[43 11 6]\n", " [29 39 44]\n", " [30 25 0]]\n", "\n", " [[14 35 12]\n", " [ 3 18 5]\n", " [41 48 44]]]\n" ] } ], "source": [ "# Joining arrays\n", "a1 = np.random.randint(50, size=(4,3,2))\n", "a2 = np.random.randint(50, size=(4,3,3))\n", "print(a1, '\\n', a2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[[14, 37, 7, 46, 21],\n", " [49, 2, 39, 32, 11],\n", " [37, 23, 23, 25, 7]],\n", "\n", " [[23, 47, 22, 39, 20],\n", " [47, 46, 25, 22, 7],\n", " [14, 21, 15, 30, 20]],\n", "\n", " [[27, 10, 43, 11, 6],\n", " [49, 42, 29, 39, 44],\n", " [45, 23, 30, 25, 0]],\n", "\n", " [[49, 29, 14, 35, 12],\n", " [22, 20, 3, 18, 5],\n", " [17, 24, 41, 48, 44]]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.concatenate((a1,a2), axis=2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1 41 42]\n", " [20 12 18]\n", " [ 0 25 22]\n", " [41 43 22]] \n", " [[46 27 2]\n", " [48 10 27]\n", " [ 0 7 40]\n", " [35 11 20]] \n", "\n" ] }, { "data": { "text/plain": [ "array([[[ 1, 41, 42],\n", " [20, 12, 18],\n", " [ 0, 25, 22],\n", " [41, 43, 22]],\n", "\n", " [[46, 27, 2],\n", " [48, 10, 27],\n", " [ 0, 7, 40],\n", " [35, 11, 20]]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Stacking two same dimensional arrays along a new axis\n", "a1 = np.random.randint(50, size=(4,3))\n", "a2 = np.random.randint(50, size=(4,3))\n", "print(a1, '\\n', a2, '\\n')\n", "\n", "np.stack((a1, a2), axis=0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 41, 42, 46, 27, 2],\n", " [20, 12, 18, 48, 10, 27],\n", " [ 0, 25, 22, 0, 7, 40],\n", " [41, 43, 22, 35, 11, 20]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To stack arrays horizontally i.e. columsn wise)\n", "np.hstack((a1, a2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 41, 42],\n", " [20, 12, 18],\n", " [ 0, 25, 22],\n", " [41, 43, 22],\n", " [46, 27, 2],\n", " [48, 10, 27],\n", " [ 0, 7, 40],\n", " [35, 11, 20]])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# To stack arrays vertically i.e. row wise\n", "np.vstack((a1, a2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# to create blocks of " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 2 }