getting_started_with_arrays.rst
changeset 175 ce0ff610e279
equal deleted inserted replaced
174:b50fa22ab6b8 175:ce0ff610e279
       
     1 .. 4.1 LO: getting started with arrays (2) [anoop] 
       
     2 .. ------------------------------------------------
       
     3 .. * why arrays 
       
     4 ..   + speed - simply say 
       
     5 ..   + array level operations 
       
     6 .. * creating arrays 
       
     7 ..   + direct data 
       
     8 ..   + list conversion 
       
     9 ..   + homogeneous 
       
    10 ..   + builtins - identitiy, zeros, 
       
    11 .. * array operations 
       
    12 ..   + =+ - * /= 
       
    13 
       
    14 ===========================
       
    15 Getting started with Arrays
       
    16 ===========================
       
    17 
       
    18 {{{ show the welcome slide }}}
       
    19 
       
    20 Welcome to the spoken tutorial on getting started with arrays.
       
    21 
       
    22 {{{ switch to next slide, outline slide }}}
       
    23 
       
    24 In this tutorial, we will learn about arrays, how to convert a list
       
    25 into an array and also why an array is preferred over lists. And array
       
    26 operations.
       
    27 
       
    28 {{{ switch to next slide on overview of array }}}
       
    29 
       
    30 Arrays are homogeneous data structures, unlike lists, arrays cannot
       
    31 have heterogeneous data elements, that is, it can have only one type
       
    32 of data type, either all integers, or strings, or float, and not a
       
    33 mix.
       
    34 
       
    35 Arrays are really fast in mathematical operations when compared to
       
    36 lists, it is at least 80 to 100 times faster than lists.
       
    37 
       
    38 {{{ switch to the next slide, creating arrays }}}
       
    39 
       
    40 I am assuming that you have your IPython interpreter running with the
       
    41 ``-pylab`` option, so that you have the required modules loaded.
       
    42 
       
    43 To create an array we will use the function ``array()`` as,
       
    44 ::
       
    45 
       
    46     a1 = array([1,2,3,4])
       
    47 
       
    48 Notice that here we created a one dimensional array. Also notice the
       
    49 object we passed to create an array. Now let us see how to create a
       
    50 two dimensional array.
       
    51 ::
       
    52 
       
    53     a2 = array([[1,2,3,4],[5,6,7,8]])
       
    54 
       
    55 Now, let us see how to convert a list object to an array. As you have
       
    56 already seen, in both of the previous statements we have passed a
       
    57 list, so creating an array can be done so, first let us create a list
       
    58 ``l1``
       
    59 ::
       
    60 
       
    61     l1 = [1,2,3,4]
       
    62 
       
    63 Now we can convert the list to an array as,
       
    64 ::
       
    65 
       
    66     a3 = array(l1)
       
    67 
       
    68 
       
    69 {{{ switch to the next slide, problem statement of unsolved exercise 1 }}}
       
    70 
       
    71 Create a three dimensional array of the order (2,2,4).
       
    72 
       
    73 {{{ switch to the next slide, shape of an array }}}
       
    74 
       
    75 To find the shape of an array we can use the object ``.shape``, let us
       
    76 check the shape of the arrays we have created so far,
       
    77 ::
       
    78 
       
    79     a1.shape
       
    80 
       
    81 ``a1.shape`` object is a tuple, and since a1 is a single dimensional
       
    82 array, it returned a tuple (4,).
       
    83 
       
    84 {{{ switch to the next slide, unsolved exercise 2 }}}
       
    85 
       
    86 Find out the shape of the other two arrays that we have created.
       
    87 
       
    88 {{{ Array can have only a single type of data }}}
       
    89 
       
    90 Now let us try to create a new array with a mix of elements and see
       
    91 what will happen,
       
    92 ::
       
    93 
       
    94     a4 = array([1,2,3,'a string'])
       
    95 
       
    96 Well, we expected an error as previously I said that an array can have
       
    97 only homogeneous elements, but it didn't give an error. Let us check
       
    98 the values in the new array created. In your IPython terminal type,
       
    99 ::
       
   100 
       
   101     a4
       
   102 
       
   103 Did you notice it, 
       
   104 
       
   105 {{{ highlight all the array elements one by one using mouse 
       
   106 movements }}}
       
   107 
       
   108 all the elements have been implicitly type casted as string, though
       
   109 our first three elements were integers.
       
   110 
       
   111 {{{ switch to the next slide, identity & zeros methods }}}
       
   112 
       
   113 An identity matrix is a square matrix in which all the diagonal
       
   114 elements are one and rest of the elements zero. We can create an
       
   115 identity matrix using the method ``identity()``.
       
   116 
       
   117 The function ``identity()`` takes an integer argument,
       
   118 ::
       
   119 
       
   120     identity(3)
       
   121 
       
   122 As you can see the identity method returned a three by three square
       
   123 array with all the diagonal elements as one and the rest of the
       
   124 elements as zero.
       
   125 
       
   126 ``zeros()`` function accepts a tuple, which is the order of the array
       
   127 we want to create, and it generates an array with all elements zero.
       
   128 
       
   129 {{{ switch to the next slide, problem statement of the solved exercise
       
   130 1 }}}
       
   131 
       
   132 Let us creates an array of the order four by five with all the
       
   133 elements zero. We can do it using the method zeros,
       
   134 ::
       
   135 
       
   136     zeros((4,5))
       
   137 
       
   138 Notice that we passed a tuple to the function zeros.
       
   139 
       
   140 {{{ switch to next slide, learning exercise }}}
       
   141 
       
   142 We learned two functions ``identity()`` and ``zeros()``, find out more
       
   143 about the functions ``zeros_like()``, ``ones()``, ``ones_like()``.
       
   144 
       
   145 {{{ switch to next slide, array operations }}}
       
   146 
       
   147 Try the following, first check the value of a1,
       
   148 ::
       
   149 
       
   150     a1
       
   151 
       
   152 ``a1`` is a single dimensional array, and now try,
       
   153 ::
       
   154 
       
   155     a1 * 2
       
   156 
       
   157 It returned a new array with all the elements multiplied by 2.
       
   158 ::
       
   159 
       
   160     a1
       
   161 
       
   162 note that the value of a1 still remains the same.
       
   163 
       
   164 Similarly with addition,
       
   165 ::
       
   166 
       
   167     a1 + 2
       
   168 
       
   169 it returns a new array, with all the elements summed with two. But
       
   170 again notice that the value of a1 has not been changed.
       
   171 ::
       
   172 
       
   173     a1
       
   174 
       
   175 You may change the value of a1 by simply assigning the newly returned
       
   176 array as,
       
   177 ::
       
   178 
       
   179     a1 += 2
       
   180 
       
   181 Notice the change in elements of a,
       
   182 ::
       
   183 
       
   184     a
       
   185 
       
   186 We can use all the mathematical operations with arrays, Now let us try
       
   187 this
       
   188 ::
       
   189 
       
   190    a1 = array([1,2,3,4])
       
   191    a2 = array([1,2,3,4])
       
   192    a1 + a2
       
   193 
       
   194 Returns an array with element by element addition,
       
   195 ::
       
   196 
       
   197     a1 * a2
       
   198 
       
   199 Returns an array with element by element multiplication, notice that
       
   200 it does not perform matrix multiplication.
       
   201 
       
   202 {{{ switch to next slide, recap slide }}}
       
   203 
       
   204 So this brings us to the end of this tutorial, in this tutorial we covered basics of arrays, how to create an array, converting a list to an array, basic array operations etc.
       
   205 
       
   206 {{{ switch to next slide, thank you }}}
       
   207 
       
   208 Thank you!
       
   209 
       
   210 ..  Author: Anoop Jacob Thomas <anoop@fossee.in>
       
   211     Reviewer 1:
       
   212     Reviewer 2:
       
   213     External reviewer: