Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
Python has numerous applications — web development, desktop GUIs, software development, business applications and scientific/numeric computing. In this series we will be focusing on how to use numeric computing in Python for data science and ML.
This is not a comprehensive Python tutorial but instead is intended to highlight the parts of the language that will be most important to us(some of which are often not the focus of Python tutorials).
In this tutorial, we will be looking at the following basic features of Python :
- Whitespace Formatting
- Python function
3. Data types and sequences
4. Date and time
5. Lambda
6. Map
7. Filter
8. Reduce
9. Zip
10. For loop
11.Control Flow
12. List comprehension
1.Whitespace Formatting
Many language use curly braces to delimit blocks of code.Python uses indentation:
for i in [1,2,3,4,5]: print (i) for j in [1,2,3,4,5]: print (j) print (i + j) print (i)print ("Done looping")
This makes Python code very readable,but it also means that you have to be very careful with your formatting.Whitespace is ignored inside parentheses and brackets,which can be helpful for long-winded computations:
long_winded_computation =(1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20)
and for making code easier to read:
list_of_lists = [[1,2,3], [4,5,6], [7,8,9]]
easier_to_read_list_of_lists = [ [1,2,3], [4,5,6], [7,8,9] ]
You can also use a backslash to indicate that a statement continues onto the next line,
although we’ll rarely do this:
two_plus_three = 2 + \ 3
One consequence of whitespace formatting is that it can be hard to copy and paste
code into the Python shell. For example, if you tried to paste the code:
for i in [1, 2, 3, 4, 5]:
#notice the blank line
print (i)
into the ordinary Python shell, you would get a:
IndentationError: expected an indented block
because the interpreter thinks the blank line signals the end of the for loop’s block.
IPython has a magic function %paste, which correctly pastes whatever is on your clipboard, whitespace and all. This alone is a good reason to use IPython.
2. Python function
A function is a block of code which only runs when it is called. You can pass data, known as parameters into a function. Let’s write a function to multiply two numbers.
#multiply two numbers using a python functiondef multiply(x,y): z = x*yreturn z
#call the function to multiply the numbers 2 and 3multiply(4,3)
Output : 12
3. Python data types and sequences
Python has built-in data types to store numeric and character data. Let us take a look at a few common types.
type(' My name is Shimanto')
Output : str
type(5)
Output : int
type(5.0)
Output : float
type(None) #None signifies 'no value' or 'empty value'
Output : NoneType
type(multiply) #multiply is a function we created previously
Output : function
Now, let’s take a look at how we can store a list of numbers and characters, and how to perform few basic manipulations.
Photo on Unsplash
i. Tuples : They are immutable data structures which cannot be altered unlike lists
a = (1,2,3,4)type(a)
Output : tuple
ii. Lists : They are mutable objects
b = [1,2,3,4]type(b)
Output : list
Let’s append a number to the list b created above.
b.append(2.5) #append to list using this functionprint(b)
Output : [1, 2, 3, 4, 2.5]
Loop through the list and print the numbers
for number in b: #looping through list print(number)
Output :
12342.5
Now, let’s concatanate two lists
[1,2,3] + [5,'bc','de'] #concatenate lists
Output : [1, 2, 3, 5, ‘bc’, ‘de’]
Create a list with repeating numbers.
[1,2]*3 #repeat lists
Output : [1, 2, 1, 2, 1, 2]
Check if an object you are searching for is in the list.
3 in b #in operator to check if required object is in list
Output : True
Unpack a list into separate variables.
a,b = ('bc','def')print(a)print(b)
Output : bcdef
iii. Strings : A string stores character objects
x = 'My name is Shimanto'
Access characters from string :
x[0] #Access first letter
Output : ‘M’
x[0:2] #Accesses two letters
Output : ‘My’
x[:-1] #Accesses everything except last letter
Output : ‘My name is shimant’
x[10:] #returns all the characters from 10th position till end
Output : ‘ Shimanto’
Now, let’s concatenate two strings.
first = 'Harun'last = 'Shimanto'
Name = first + ' ' + last #string concatenationprint(Name)
Output : Harun Shimanto
Show only the first word.
Name.split(' ')[0] #Show the first word
Output : ‘Harun’
Now, show only the second word in the string
Name.split(' ')[1] #Show the second word
Output : ‘Shimanto’
For concatenating numeric data to string, convert the number to a string first
#for concatenation convert objects to strings'Harun' + str(2)
Output : Harun2
iv. Dictionary : A dictionary is a collection which is not ordered, but is indexed — and they have keys and values.
c = {"Name" : "Harun", "Height" : 175}type(c)
Output : dict
Print data contained within a dictionary
print(c)
Output : {‘Name’: ‘Harun’, ‘Height’: 175}
Access dictionary values based on keys
c['Name'] #Access Name
Output : ‘Harun’
c['Height']
Output : 175
Print all the keys in the dictionary
#print all the keysfor i in c: print(i)
Output : NameHeight
Print all the values in the dictionary
for i in c.values(): print(i)
Output : Harun175
Iterate over all the items in the dictionary
for name, height in c.items(): print(name) print(height)
Output : NameHarunHeight175
4. Python Date and Time
The following modules helps us in manipulating date and time variables in simple ways.
import datetime as dtimport time as tm
Print the current time in seconds (starting from January 1, 1970)
tm.time() #print current time in seconds from January 1, 1970
Output : 1533370235.0210752
#convert timestamp to datetimedtnow = dt.datetime.fromtimestamp(tm.time()) dtnow.year
Output : 2018
Get today’s date
today = dt.date.today()today
Output : datetime.date(2018, 8, 4)
Subtract 100 days from today’s date
delta = dt.timedelta(days=100)today - delta
Output : datetime.date(2018, 4, 26)
5. Map function
Map function returns a list of the results after applying the given function to each item of a given sequence. For example, let’s find the minimum value between two pairs of lists.
a = [1,2,3,5]b = [8,9,10,11]c = map(min,a,b) #Find the minimum between two pairs of lists
for item in c: print(item) #print the minimum of the pairs
Output : 1235
6. Lambda function
Lambda function is used for creating small, one-time and anonymous function objects in Python.
function = lambda a,b,c : a+b+c #function to add three numbersfunction(5,6,8) #call the function
Output : 19
7. Filter function
Filter offers an easy way to filter out all the elements of a list. Filter (syntax : filter(function,list)) needs a function as its first argument, for which lambdacan be used. As an example, let’s filter out only the numbers greater than 5 from a list
x = [0,2,3,4,5,7,8,9,10] #create a listx2 = filter(lambda a : a>5, x) #filter using filter function
print(list(x2))
Output : [7,8,9,10]
8. Reduce function
Reduce is a function for performing some computation on a list and returning the result. It applies a rolling computation to sequential pairs of values in a list. As an example, let’s calculate the product of all the numbers in a list.
from functools import reduce #import reduce functiony = [6,7,8,9,10] #create listreduce(lambda a,b : a*b,y) #use reduce
Output : 30240
9. Zip function
Zip function returns a list of tuples, where the i-th tuple contains the i-th element from each of the sequences. Let’s look at an example.
a = [1,2,3,4] #create two listsb = [5,6,7,8]
c = zip(a,b) #Use the zip functionprint(list(c))
Output : [(1,5), (2,6), (3,7), (4,8)]
If the sequences used in the zip function is unequal, the returned list is truncated in length to the length of the shortest sequence.
a = [1,2] #create two listsb = [5,6,7,8]
c = zip(a,b) #Use the zip functionprint(c)
Output : [(1,5), (2,6)]
9. For loop
For loops are usually used when you have a block of code which you want to repeat a fixed number of times.
Let us use a for loop to print the list of even numbers from 1 to 50.
#return even numbers from 1 to 50
even=[]for i in range(50):if i%2 ==0: even.append(i)else:None
print(even) #print the list
Output : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48]
10.Control Flow
Control Flow
As in most programming languages, you can perform an action conditionally using if:
if (1 > 2): message = "if only 1 were greater than two…"elif( 1 > 3): message= "elif stands for 'else if'"else: message="when all else fails use else (if you want to)"
Python has a while loop:
x = 0while x < 10: print (x, "is less than 10") x += 1
although more often we’ll use for and in:
for x in range(10): print( x, "is less than 10")
If you need more-complex logic, you can use continue and break:
for x in range(10): if (x == 3): continue # go immediately to the next iteration if (x == 5): break # quit the loop entirely print (x)
Output :0,1,2,4
11. List comprehension
List comprehension provides an easier way to create lists. Continuing the same example, let’s create a list of even numbers from 1 to 50 using list comprehension.
even = [i for i in range(50) if i%2==0]print(even)
Output : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48]
The features we looked at help in understanding the basic features of Python which are used for numerical computing. Apart from these in-built functions, there are other libraries such as Numpy and Pandas (which we look at in the upcoming articles) which are used extensively in data science and Machine learning.
Resources :
- Python 3.7.0 documentation
- Data Science from Scratch.(Book)
- Applied Data Science with Python Specialization.
Connect on LinkedIn and, check out Github (below) for the complete notebook.
harunshimanto/Python-The-Dangerous-Tool-For-ML-Data-Science
You can tell me what you think about this, if you enjoy writing, click on the clap 👏 button.
Thanks to everyone.
11 Ways to Make Python a Dangerous Language For Data Science was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.