Python Basics : Part 12 – Methods

The most common and widely used feature of python programming for data science is methods. You will see the usage of methods quite often while you dive further into data science with python.

Lets go ahead and create a string :

In [1]: s=' hello! Welcome To Python Crash Course'
In [2]: s.lower()
Out[3]: 'hello! welcome to python crash course'

It’s so simple isn’t it ? The lower method on a string will convert all the characters to lower case. You can try the s.upper() method and see if the method changes your string to upper case. There are several methods of a string which can be found by pressing tab in jupyter notebook after the dot symbol ( s. ), you can try out various methods available.

Lets go over the split method.

In[4] : s.split()
Out[5]: ['hello!', 'Welcome', 'To', 'Python', 'Crash', 'Course']

The split functions splits the strings on the white space. If you need to split the dataset based out of ‘!’ then you can pass the ! mark within quotes and within the split function. The method will split the string where it finds the ! mark.

In [6]: s.split('!')
Out[7]: ['hello', 'Welcome To Python Crash Course']

You can try and use methods on strings, dictionaries and lists. Lets try a method on a list.

In [8]: list=[1,2,3]
In [9]: list.pop()
Out[10]: 3

The pop method removes the last component/element from the list permanently. If there is a need to pop a particular item of your choice, you have to target the items index and pass the value within the pop functional brackets.

In [11]: list
Out[12]: [1,2]

Here we come to an end of the python crash course for data science. These 12 modules / blog posts should help any beginner ( like me ) to gain fair bit of knowledge on python as we move along more complex codes within data science.

Leave a comment if you really enjoyed this crash course series.

Python Basics : Part 11 – Functions

We use the def keyword to define a function in python, followed by a function name and parameters. Let me show you a basic function in python :

In [1]: def my_func (param1) :
In [2]: my_func('hello')

Let’s see some more examples. We can use the + operator to concatenate the string ‘Hello’ with the input parameter which is name. In case we do not pass any parameter to the function, the output returned is Default Name

In [3]: def my_func (name='Default Name') :
               print('Hello' + name)
In [4]: my_func('Analytics')
        Hello Analytics
In [5]: my_func()
        Default Name

In case we have to return a value in a function after the computing the results, we can do that using the return statement within the function as shown below :

In [6]: def square(num): 
        This function squares a number
        return num**2
In [7]: output = square(2)
In [8]: output
Out[9]: 4

Note the use of double quote is used 3 times to enter comment text within the function. Now that we know the basics of functions, lets move on to map function.

Lets say we have a sequence :

In [10]: seq=[1,2,3,4,5]

If we have to lets say use the above function square to square every number in our sequence above, we can use the map function as shown below :

In [11]: map(square,seq)
Out[12]:<map at 0x17ce8b6d550>

The above map is now saved at a memory location. If we have to retrieve the output we will have to cast the map function to a list as shown below :

In [13]: list(map(square,seq))
Out[14]: [1,4,9,16,25]

If you have to rewrite the def function as we discussed above to a much simpler way of computing / calculating desired results we could use the lambda expression:

In [15]: t=lambda(var:var*2)
In [16]: t(6)
Out[17]: 12

But mostly we will be using the lambda expression in our map function as shown below:

In [18]: seq=[1,2,3]
In [19]: list(map(lambda var:var*3,seq))
Out[20]: [3,6,9]

In [19] statement basically multiplies numbers in the sequence ( seq ) by 3.

Lets take a look at the filter function, as the name suggests the function would retrieve values which are true/satisfied/met.

In [21]: list(filter(lambda: num:num%2 == 0,seq))
Out[22]: [2]

The modulus function above retrieving a 0 is true only for the integer 2 and false for 1 and 3, hence the output is integer 2.

Let’s move on to methods in python. If you have any questions or suggestions, please let me know in the comments section below.

Python Basics : Part 10 – Loops

Lets first create a sequence and use a FOR loop to print the elements in a sequence, that way it is easy to understand the looping concepts.

In [1]:seq=[1,2,3,4]
In [2]:for item in seq:

The temporary variable name ( item ) as shown above can be changed to num / any other variable name of your choice, it wouldn’t matter for python. So make a good choice of your own while choosing the temporary variable names.

In [3]:seq=[1,2,3,4]
In [4]:for item in seq:

The above code printed hello for every element in our sequence. Lets now discuss the WHILE loop in python.

In [5]:i = 1
       while i < 5:
           print('i is : {}'.format(i))
i is : 1
i is : 2
i is : 3
i is : 4

The above loops executes printing until the condition happens to be true. You can try some more examples on your own and let me know in the comments.

Python Basics : Part 9 – Statements

Python uses IF, ELIF and ELSE statements for processing results based on the condition passed within them. The condition is then followed by colon to pass/perform the desired action.

In [1]:if 1<2:
            print('perform this action')
       perform this action

Note that we are performing a print action in python and there is no python Out prompt here on the jupyter notebook.

Lets try some more examples, I have coded the operation statement in the same line, but as a best practice and easier understanding you can code the operation in the second line in your juypter notebook. You will notice the indentation happening automatically in jupyter notebook after pressing the enter key after the colon symbol.

In [2]:if 1<2 : x=2+2
In [3]:x

Lets now use multiple IF conditions and see how it works.

In [5]: if 1==1 : 
                 print ('First') 
           else : 
                 print ('Last')
Out[6]: First

If the condition is True ( 1==1) then the code will print First else it will print Last.

In [7]:if 1 < 2  : 
                print ('First') 
       elif 2==2 : 
                print ('Second')
       elif 3==3 :
                print ('Third')
       else :
                print ('Last')
Out[8]: Second

Notice what happened above, even though 3==3, it did not print Third as python stops the iteration when the first condition is true or is satisfied. In our example 2==2, which is true and hence Second was printed.

Try out some more examples using these statements and let me know if you found it easy to absorb.

Python Basics : Part 8 – Operators

Is 1 > 2 ? Is it True or False ? We know its False. Let’s see if python knows the answer

In [1]: 1>2
Out[2]: False
In [3]: 1<2
Out[4]: True
In [5]: 1==1
Out[6]: True

Note that equality is represented by two equal to signs, if we represent it by just one equal to sign then python thinks you are trying a variable assignment and it will error. Try it out and let me know what the error is.

Python also supports string equality checks:

In [7]: 'hi' == 'bye'
Out[8]: False

Lets discuss some of the logic operators in python ( AND, OR )

In  [9]: (1<2) and (2>3)
Out[10]: False

Notice that for the AND operator – both the conditions should be true for the result/output to be True, but for the OR operator any one of the conditions should be true for the output to be true.

In [11]: (1<2) or (2>3)
Out[12]: True

Now that we have some understanding on some Boolean operators, lets move on to statements ( IF, ELSE ) in the next part. Try out some more examples in your jupyter notebook and let me know if you face any errors, would be interesting to discuss them here.

Python Basics : Part 7 – Sets

A Set in python is a collection of unique elements. Curly brackets are used to define a set. If you have a bunch of integers and you need to pick only the unique numbers among them, you can make use of python sets. We can use a set function to pass a list of values and the output set will contain the unique elements.

In [1]: {1,2,3,4,3,4,5}
Out[2]: {1,2,3,4,5}
In [3]: set([1,1,1,2,2,3,3,4,5])
Out[4]: {1,2,3,4,5}

We can even add items to the sets by using the add method as shown below :

In [5]: set={1,2,3}
In [6]: set.add(4)
In [7]: set
Out[8]: {1,2,3,4}

Note that the element is added to the end of the set. Try to add 4 again to the set and let me know what happens in the comments section below.

Python Basics : Part 6 – Tuples

Tuples in python act similar to that of a python list. In list we pass the elements within a square bracket, but in tuples it is parenthesis ( open & close brackets ). The other major difference between tuples and lists is that elements inside a list can be updated. To see how the elements can be updated refer to my previous blog post on lists. Tuples on the other hand cannot be updated. It’s more of a read only object once it is created. Fetching the data out of a tuple and a list will still remain the same. Having said that the indexing would act similar in a tuple and a list.

In [1]:tuple = (1,2,3)
In [2]:tuple[0]

Try assigning / updating an element in your tuple and let me know what error you get in the comments section below.

If you are not aware of what a for or while loop is, don’t worry about it much. Those are covered in the upcoming courses. What I wanted to show you is tuple unpacking using the for loop.

Lets say we have a list of tuples as shown below :

In [4]:x=[(1,2),(3,4),(5,6)]

We can unpack and print the elements using tuple unpacking with the help of a for loop :

In [5]:for (a,b) in x:
                     print (a)
                     print (b)

That’s how you unpack a tuple. the values in x in the form of a tuple ( a,b ) will be fed into a for loop. You can come back to this topic after you complete the for loop course in this series. You can however tend to skip this unpacking topic for now.