-
Notifications
You must be signed in to change notification settings - Fork 0
/
Ipython-lectureNotes
108 lines (78 loc) · 1.97 KB
/
Ipython-lectureNotes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
' hello world' --> create an array of bits
u'hello world' --> create an string
b= <bit array>
b.decode('utf-8')
range(5)
xrange(10000000000000000) to no create the data in memory
Generator:
l=(i*2 for i in range xrange(100000000000000000))
For complex operations is better to use another generator
def doublify(nums):
for i in nums:
yield i*2
for i in doublify(xrange(10)):
print i
g = doublify(xrange(10))
Pass the numbers one by one:
next(g)
-----------------------------------------------------
Aspect oriented programming:
def print_hello():
print 'Hello'
print_hello()
def logged(f):
def logged_f(*args, **kw):
print 'CALLING{}'.format(f)
f(*args, **kw)
print 'DONE'
return logged_f
**kw = key words arguments
*arg = position arguments
logged_f(1,2,3,4, a=5, b=6, c=7)
@logged
def print_hello():
print 'Hello'
@logged
def print_sum(a,b):
print a+b
print_hello()
print_sum(1, 2)
To know the time to do a task:
def benchmark(f):
def benchmarked_f(*args, **kw):
start = time.time()
f(*args,**kw)
end = time.time()
print 'Took: {}'
return benchmarked_f
@benchmark
@logged
print_hello()
print_sum()
-----------------------
Arguments in functions
def func2(a,b,c):
print a,b,c
def func(*args, **kwargs):
l = [args[0]*2, args[1]*3, args[2]*4]
func2(l)
func2(*args, **kwargs)
-------------------------
Using the decorator before a function tells the program to use with this function
def logged(text_accessor):
def logged_deco(f):
def logged_f(*args, **kw):
print '{} {}'.format(text_accessor(), f)
f(*args, **kw)
print 'DONE'
return logged_f
@logged('START')
def print_hello(name):
print 'Hello', name
-----------------------------------
Discoproject.org
Open Source Mapper created by NOKIA Research Center
----------------------------------
Hadoop is totally written in Java
Hadoop Distributed File System (HDFS)
Elastic Mapreduce (amazon EMR) is a map reduce claster from Amazon Web Service --> Manage the Hadoop Cluster