Hands On NumPy?-1
Hands On NumPy?-1
[1 2 3 4]
In [3]: type(arr_1d)
numpy.ndarray
Out[3]:
In [4]: arr_1d.size
4
Out[4]:
In [5]: arr_1d.ndim
1
Out[5]:
[[1 2 3 4]
[5 6 7 8]]
In [7]: arr_2d.ndim
2
Out[7]:
In [8]: arr_2d.size
8
Out[8]:
(2, 4)
Out[9]:
In [10]: arr_2d.dtype
dtype('int32')
Out[10]:
[[1 1 1]
[1 1 1]
[1 1 1]]
[1. 1. 1. 1. 1.]
In [13]: mx_1s.dtype
dtype('float64')
Out[13]:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
[[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]]
False
In [20]: em_mx = np.empty((3,3))
print(em_mx)
NumPy Functions :
In [21]: import numpy as np
arange()
[ 1 2 3 4 5 6 7 8 9 10 11 12]
In [23]: # Even
even_ar = np.arange(1,13,2)
print(even_ar)
[ 1 3 5 7 9 11]
linspace()
In [24]: np.linspace(1,5,4)
reshape()
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[[[ 1 2]
[ 3 4]
[ 5 6]]
[[ 7 8]
[ 9 10]
[11 12]]]
In [27]: ar = np.arange(1,13).reshape(2,6)
print(ar)
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
ravel()
In [28]: ar.ravel()
flatten()
In [29]: ar.flatten()
transpose()
In [30]: ar.transpose()
array([[ 1, 7],
Out[30]:
[ 2, 8],
[ 3, 9],
[ 4, 10],
[ 5, 11],
[ 6, 12]])
In [31]: ar.T
array([[ 1, 7],
Out[31]:
[ 2, 8],
[ 3, 9],
[ 4, 10],
[ 5, 11],
[ 6, 12]])
print(arr1)
print(arr2)
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]
array([[ 2, 4, 6],
Out[34]:
[ 8, 10, 12],
[14, 16, 18]])
In [35]: np.add(arr1,arr2)
array([[ 2, 4, 6],
Out[35]:
[ 8, 10, 12],
[14, 16, 18]])
array([[0, 0, 0],
Out[36]:
[0, 0, 0],
[0, 0, 0]])
In [37]: np.subtract(arr1,arr2)
array([[0, 0, 0],
Out[37]:
[0, 0, 0],
[0, 0, 0]])
In [39]: np.divide(arr1,arr2)
array([[ 1, 4, 9],
Out[40]:
[16, 25, 36],
[49, 64, 81]])
In [41]: np.multiply(arr1,arr2)
array([[ 1, 4, 9],
Out[41]:
[16, 25, 36],
[49, 64, 81]])
In [43]: arr1.dot(arr2)
In [44]: arr1.max()
9
Out[44]:
In [45]: arr1.argmax()
8
Out[45]:
In [46]: arr1.min()
1
Out[46]:
array([7, 8, 9])
Out[47]:
In [48]: arr1.max(axis = 1)
array([3, 6, 9])
Out[48]:
In [49]: arr1.argmin()
0
Out[49]:
In [50]: arr1.min(axis = 0)
array([1, 2, 3])
Out[50]:
In [51]: arr1.min(axis = 1)
array([1, 4, 7])
Out[51]:
In [52]: np.sum(arr1)
45
Out[52]:
In [53]: np.sum(arr1,axis = 0)
In [54]: np.sum(arr1,axis = 1)
In [55]: np.mean(arr1)
5.0
Out[55]:
In [56]: np.sqrt(arr1)
In [57]: np.std(arr1)
2.581988897471611
Out[57]:
In [58]: np.exp(arr1)
In [60]: np.log10(arr1)
In [62]: mx = np.arange(1,101).reshape(10,10)
print(mx)
[[ 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]]
In [63]: mx[0,0]
1
Out[63]:
In [64]: mx[2,6]
27
Out[64]:
In [65]: mx[2,6].ndim
0
Out[65]:
In [66]: mx[0]
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Out[66]:
In [67]: mx[:,0]
array([ 1, 11, 21, 31, 41, 51, 61, 71, 81, 91])
Out[67]:
In [68]: mx[:,0:1]
array([[ 1],
Out[68]:
[11],
[21],
[31],
[41],
[51],
[61],
[71],
[81],
[91]])
In [69]: mx[:,0:1].ndim
2
Out[69]:
In [70]: mx[1:4,1:4]
In [71]: mx[:,1:3]
array([[ 2, 3],
Out[71]:
[12, 13],
[22, 23],
[32, 33],
[42, 43],
[52, 53],
[62, 63],
[72, 73],
[82, 83],
[92, 93]])
In [72]: # mx[:]
In [73]: # mx[::]
In [74]: # mx[:,:]
In [75]: mx.itemsize
4
Out[75]:
In [76]: mx.dtype
dtype('int32')
Out[76]:
In [77]: 32/8
4.0
Out[77]:
[[ 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]]
In [81]: # Concatenate
np.concatenate((arr1,arr2))
array([[ 1, 2, 3, 4],
Out[81]:
[ 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]])
In [82]: np.concatenate((arr1,arr2),axis = 1)
In [83]: np.vstack((arr1,arr2))
array([[ 1, 2, 3, 4],
Out[83]:
[ 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]])
In [84]: np.hstack((arr1,arr2))
In [86]: np.hstack((arr1,arr2,arr3))
[array([[1, 2, 3, 4],
Out[87]:
[5, 6, 7, 8]]),
array([[ 9, 10, 11, 12],
[13, 14, 15, 16]])]
list
Out[88]:
In [89]: list1[0]
array([[1, 2, 3, 4],
Out[89]:
[5, 6, 7, 8]])
In [90]: type(list1[0])
numpy.ndarray
Out[90]:
In [91]: np.split(arr1,2,axis = 1)
[array([[ 1, 2],
Out[91]:
[ 5, 6],
[ 9, 10],
[13, 14]]),
array([[ 3, 4],
[ 7, 8],
[11, 12],
[15, 16]])]
In [93]: np.split(_1d,[1,3])
In [95]: np.sin(180)
-0.8011526357338304
Out[95]:
In [97]: np.sin(90)
0.8939966636005579
Out[97]:
In [98]: np.cos(180)
-0.5984600690578582
Out[98]:
In [99]: np.tan(180)
1.3386902103511544
Out[99]:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7
1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3. 3.1 3.2 3.3 3.4 3.5
3.6 3.7 3.8 3.9 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3
5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1
7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9
9. 9.1 9.2 9.3 9.4]
In [102… plt.plot(x_sin,y_sin)
plt.show()
In [104… plt.plot(x_sin,y_cos)
plt.show()
In [106… plt.plot(x_sin,y_tan)
plt.show()
In [108… np.random.random(1)
array([0.74363081])
Out[108]:
In [109… np.random.random((3,3))
3
Out[110]:
In [111… np.random.randint(1,4,(4,4))
array([[3, 1, 2, 2],
Out[111]:
[1, 1, 3, 2],
[3, 3, 3, 3],
[3, 2, 3, 2]])
In [112… np.random.randint(1,4,(2,4,4))
array([[[2, 1, 1, 1],
Out[112]:
[2, 3, 2, 3],
[3, 2, 1, 3],
[1, 2, 2, 1]],
[[3, 3, 1, 2],
[3, 1, 3, 1],
[3, 3, 1, 2],
[3, 2, 1, 2]]])
In [113… # 2**32 -1
np.random.seed(10)
np.random.randint(1,4,(2,4,4))
array([[[2, 2, 1, 1],
Out[113]:
[2, 1, 2, 2],
[1, 2, 2, 3],
[1, 2, 1, 3]],
[[1, 3, 1, 1],
[1, 3, 1, 3],
[3, 2, 1, 1],
[3, 2, 3, 2]]])
In [114… np.random.rand(3)
In [115… np.random.rand(3,3)
In [117… x = [1,2,3,4]
np.random.choice(x)
1
Out[117]:
In [118… for i in range(10):
print(np.random.choice(x))
1
1
2
1
4
1
1
3
1
3
In [119… np.random.permutation(x)
array([4, 2, 1, 3])
Out[119]:
In [120… # np.random.shuffle(x)
In [123… np.char.add(pip,lib)
array('PythonNumPy', dtype='<U11')
Out[123]:
In [124… np.char.lower(pip)
array('python', dtype='<U6')
Out[124]:
In [125… np.char.upper(lib)
array('NUMPY', dtype='<U5')
Out[125]:
In [126… np.char.center(lib,75,fillchar="_")
array('___________________________________NumPy______________________________
Out[126]:
_____',
dtype='<U75')
In [127… # Split
pack = "Python NumPy Learning"
In [128… np.char.split(pack)
In [129… np.char.splitlines("NumPy\nPython")
np.char.join([":","/"],[str1,str2])
In [131… np.char.replace(pack,"Learning","Participation")
In [132… np.char.equal(str1,str2)
array(True)
Out[132]:
In [133… np.char.count(pack,"n")
array(3)
Out[133]:
In [134… np.char.find(pack,"N")
array(7)
Out[134]:
CampusX
In [135… import numpy as np
array([1, 2, 3, 4, 5])
Out[136]:
In [137… type(arr1)
numpy.ndarray
Out[137]:
array([[1, 2, 3],
Out[138]:
[4, 5, 6]])
In [144… # Copy
arr8 = arr7.copy()
arr8
In [145… arr1.shape
(5,)
Out[145]:
In [146… arr2.shape
(2, 3)
Out[146]:
In [147… # 3
arr9 = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
In [148… arr9.shape
(2, 2, 2)
Out[148]:
In [149… arr9.ndim
3
Out[149]:
In [150… arr9.size
8
Out[150]:
In [151… arr9.itemsize
4
Out[151]:
In [152… arr8.itemsize
8
Out[152]:
In [153… arr8.dtype
dtype('float64')
Out[153]:
In [154… arr9.dtype
dtype('int32')
Out[154]:
In [155… arr9.astype('float')
array([[[1., 2.],
Out[155]:
[3., 4.]],
[[5., 6.],
[7., 8.]]])
In [158… print(sys.getsizeof(87)*len(list1))
2800
In [159… print(arr11.itemsize*arr11.size)
400
In [161… x = range(100000)
y = range(100000,200000)
start_time = time.time()
print(time.time() - start_time)
0.010995864868164062
In [162… a = np.arange(100000)
b = np.arange(100000,200000)
start_time = time.time()
c = c + b
print(time.time() - start_time)
0.009999513626098633
In [163… arr12 = np.arange(24).reshape(6,4)
arr12
array([[ 0, 1, 2, 3],
Out[163]:
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
In [164… arr12[:,1:3]
array([[ 1, 2],
Out[164]:
[ 5, 6],
[ 9, 10],
[13, 14],
[17, 18],
[21, 22]])
In [165… arr12[2:4,1:3]
array([[ 9, 10],
Out[165]:
[13, 14]])
In [166… arr12[4:,2:]
array([[18, 19],
Out[166]:
[22, 23]])
[0 1 2 3]
[4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
In [173… arr_1 * 2
In [176… arr_3.dot(arr_4)
In [181… arr_1.dot(arr_2)
154
Out[181]:
In [183… arr_4.max()
11
Out[183]:
In [184… arr_4.min()
6
Out[184]:
In [185… arr_4.min(axis = 0)
array([6, 7])
Out[185]:
In [186… arr_4.min(axis = 1)
array([ 6, 8, 10])
Out[186]:
In [187… arr_4.sum()
51
Out[187]:
In [188… arr_4.sum(axis = 0)
array([24, 27])
Out[188]:
In [189… arr_4.sum(axis = 1)
In [190… arr_4.mean()
8.5
Out[190]:
In [191… arr_4.std()
1.707825127659933
Out[191]:
In [193… np.sin(arr_4)
array([[-0.2794155 , 0.6569866 ],
Out[193]:
[ 0.98935825, 0.41211849],
[-0.54402111, -0.99999021]])
In [195… np.median(arr_4)
8.5
Out[195]:
In [196… np.exp(arr_4)
Reshaping_NumPy_Array
In [198… arr_4
array([[ 6, 7],
Out[198]:
[ 8, 9],
[10, 11]])
In [200… arr_4.ndim
2
Out[200]:
In [201… arr_4.ravel()
array([[ 6, 8, 10],
Out[203]:
[ 7, 9, 11]])
In [209… arr_5
In [210… np.hstack((arr_3,arr_5))
In [211… np.vstack((arr_3,arr_5))
array([[ 0, 1, 2],
Out[211]:
[ 3, 4, 5],
[12, 13, 14],
[15, 16, 17]])
In [213… np.hsplit(arr_3,3)
[array([[0],
Out[213]:
[3]]),
array([[1],
[4]]),
array([[2],
[5]])]
In [214… np.vsplit(arr_3,2)
In [216… arr_8
array([[ 0, 1, 2, 3],
Out[216]:
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
In [218… arr_8[[0,2,4]]
array([[ 0, 1, 2, 3],
Out[218]:
[ 8, 9, 10, 11],
[16, 17, 18, 19]])
In [224… arr[0]
(4, 5)
Out[233]:
array([83, 63, 78, 94, 76, 87, 96, 89, 97, 74, 91])
Out[237]:
In [241… arr
In [242… x = np.linspace(-40,40,100)
In [244… x.size
100
Out[244]:
In [245… y = np.sin(x)
In [247… y.size
100
Out[247]:
In [252… plt.plot(x,y)
plt.show()
In [253… y = x * x + 2 * x + 6
In [254… plt.plot(x,y)
plt.show()
Broadcasting
[[0 1 2 3]
[4 5 6 7]]
[[ 8 9 10 11]
[12 13 14 15]]
print(a_3)
print(a_4)
[[0 1 2]
[3 4 5]
[6 7 8]]
[[0 1 2]]
array([[ 0, 2, 4],
Out[261]:
[ 3, 5, 7],
[ 6, 8, 10]])
print(a_5)
print(a_6)
[[0 1 2]]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
array([[ 0, 2, 4],
Out[265]:
[ 3, 5, 7],
[ 6, 8, 10],
[ 9, 11, 13]])
In [272… np.random.random()
0.1033810697475811
Out[272]:
In [275… np.random.seed(1)
np.random.random()
0.417022004702574
Out[275]:
In [281… np.random.uniform(1,100)
10.141520882110981
Out[281]:
In [283… np.random.uniform(1,100,10).reshape(2,5)
In [286… np.random.randint(1,10,15).reshape(3,5)
array([[7, 6, 2, 4, 5],
Out[286]:
[9, 2, 5, 1, 4],
[3, 1, 5, 3, 8]])
In [299… a = np.random.randint(1,10,6)
print(a)
[3 8 8 8 4 1]
In [289… np.max(a)
9
Out[289]:
In [290… np.min(a)
1
Out[290]:
In [301… a[np.argmax(a)]
8
Out[301]:
In [300… a[np.argmin(a)]
1
Out[300]:
In [306… a
array([-1, 8, 8, 8, 4, -1])
Out[306]:
In [305… a[a % 2 == 1] = -1
a
array([-1, 8, 8, 8, 4, -1])
Out[305]:
In [311… b = np.random.randint(1,50,6)
print(b)
[37 40 8 46 5 49]
In [313… b
In [316… c = np.random.randint(1,50,10)
print(c)
[21 33 13 2 31 42 25 19 34 3]
In [318… np.sort(c)
c
In [319… np.percentile(c,25)
14.5
Out[319]:
In [320… np.percentile(c,50)
23.0
Out[320]:
In [323… np.percentile(c,99.8)
41.855999999999995
Out[323]:
Thank You