Numpy
Numpy
model = 'F21'
bike.model
vehicle.brand
import numpy as np
list(range(0,6))
[0, 1, 2, 3, 4, 5]
list(range(0,6,2))
[0, 2, 4]
list_1 =[2,4,5,3,8,9,5]
list_2 =[3,6,8,6,0,4,3]
lst =[]
for i in range(0,len(list_1)):
x= list_1[i]*list_2[i]
lst.append(x)
import numpy as np
the product of list are:- [6, 24, 40, 18, 0, 36, 15]
x = np.array([2,4,5,3,8,9,5])
y= np.array([3,6,8,6,0,4,3])
print(x*y)
[ 6 24 40 18 0 36 15]
z = np.array([2,4,2,8.7,9])
print(z) #here the numpy will change all the
varible into float as one number is in float
x= np.array([2.5,5.4,3.4,7.8,2.4],dtype= 'int')
print(x)
[2. 4. 2. 8.7 9. ]
[2 5 3 7 2]
np.zeros((2,3,4))
np.zeros(5)
np.zeros((3,4), dtype='int')
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3])
np.full((4,5),3)
array([[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3]])
str
array([ 2., 4., 6., 8., 10., 12., 14., 16., 18.])
np.eye(5,4)
np.eye(4,4, dtype='bool')
array([[ True, False, False, False],
[False, True, False, False],
[False, False, True, False],
[False, False, False, True]])
np.random.rand(4,3)
np.random.randn(10)
array([[7, 7, 5, 6],
[7, 7, 7, 5],
[7, 7, 5, 5],
[6, 6, 5, 5],
[5, 6, 7, 6],
[7, 5, 6, 5]])
properties of numpy
matrix =np.random.randint(0,8,(3,5))
matrix
array([[7, 6, 4, 3, 4],
[4, 2, 7, 0, 7],
[0, 4, 7, 4, 6]])
(3, 5)
15
matrix.dtype
dtype('int32')
RESHAPE
# reshape
matrix = np.arange(1,16)
matrix
matrix.reshape(5,3)
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12],
[13, 14, 15]])
matrix.reshape(3,5)
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
array = matrix.reshape((1,15))
array
array.ndim
matrix.ndim
mat.max()
33
mat.min()
mat.argmin()
mat.argmax()
matr = np.random.randint(1,100,(5,5))
matr
matr.max()
99
matr.argmax()
17
matr.argmin()
a1= np.array([1,2,3,4,5])
a2 = np.array([5,6,7,8,9])
result = np.concatenate([a1,a2])
result
array([1, 2, 3, 4, 5, 5, 6, 7, 8, 9])
a3 = np.arange(1,7).reshape((2,3))
a3
array([[1, 2, 3],
[4, 5, 6]])
a4 = np.array([[21,22,23,24],[25,26,27,28]])
a4
split()
#spliting 1d array
array = np.array([1,2,7,21,4,5,6,733,44,22,32,45])
np.split(array,(3,10))
x,y,z = np.split(array,(3,10))
array([1, 2, 7])
array([32, 45])
np.split(array,3)
#2 dimensional array
array_1 = np.arange(1,21).reshape(4,5)
array_1
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
np.split(array_1, (2,3))
[array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]]),
array([[11, 12, 13, 14, 15]]),
array([[16, 17, 18, 19, 20]])]
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
array_1
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
np.hsplit(array_1,(2,3))
[array([[ 1, 2],
[ 6, 7],
[11, 12],
[16, 17]]),
array([[ 3],
[ 8],
[13],
[18]]),
array([[ 4, 5],
[ 9, 10],
[14, 15],
[19, 20]])]
np.vsplit(array_1,2)
[array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]]),
array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])]
np.vsplit(array_1,(2,4))
[array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]]),
array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]]),
array([], shape=(0, 5), dtype=int32)]
sort
array = np.array([1,2,7,21,4,5,6,733,44,22,32,45])
array
np.sort(array)
ar =np.random.randint(5,20,(6,4))
ar
array([[ 5, 5, 5, 5],
[ 5, 7, 9, 10],
[10, 8, 10, 10],
[12, 12, 11, 14],
[12, 12, 13, 17],
[16, 14, 16, 19]])
variable = np.array([[2,4,2,7],
[9,7,5,0],
[4,5,3,8]])
variable
array([[2, 4, 2, 7],
[9, 7, 5, 0],
[4, 5, 3, 8]])
variable[0,0]
#negitive indexing
variable[-1,-3]
slicing
a = np.arange(1,20)
a
a[3:12]
a[2:: 3]
#2 dim array
b= np.arange(20).reshape(4,5)
b
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
b[2, :]
b[: ,1]
b[0:4, 0:3]
array([[ 0, 1, 2],
[ 5, 6, 7],
[10, 11, 12],
[15, 16, 17]])
b[1::2,1:3]
array([[ 6, 7],
[16, 17]])
m = np.arange(1,20)
m
m[2]=10
m[0:6]= 22,33,44,55,66,77
m
array([22, 33, 44, 55, 66, 77, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17,
18, 19])
#assigning values in 2d
array_1 = np.array([[1,2,3],
[2,4,5],
[4,5,6] ])
array_1
array([[1, 2, 3],
[2, 4, 5],
[4, 5, 6]])
array_1[2,0]=55
array_1
array([[ 1, 2, 3],
[ 2, 4, 5],
[55, 5, 6]])
array_1[: ,2]= 22
array_1
array([[ 1, 2, 22],
[ 2, 4, 22],
[55, 5, 22]])
array_1[0 ,:]=11
array_1
array_1[0:2,0:2]
array([[11, 11],
[ 2, 4]])
array_1[0:3,0:2] =0
array_1
array([[ 0, 0, 11],
[ 0, 0, 22],
[ 0, 0, 22]])
array_1[1]
array([ 0, 0, 22])
#fancy indexing in 1d
fancy = np.arange(1,50,5)
fancy
index = [2,3,5]
fancy[index]
index = np.array([2,4,7])
index
array([2, 4, 7])
fancy[index]
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
lst1= [2,3,4,5,6]
array_3[lst1]
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
numpy operations
#comparision operator - > < = != >= <=
array = np.arange(1,10)
array
array > 5
array[array > 5]
a - 5
np.subtract(a ,5)
a + 5
np.add(a,5)
a /2
np.divide(a,2)
a * 3
np.multiply(a, 3)
((a*10) /2) -6
a *a
a ** 3
np.power(a,3)
a ** .5
np.sqrt(a)
a%5
np.mod(a,5)
np.sin(100)
np.cos(100)
np.log(a)
np.log10(a)
#https://www.datacamp.com/cheat-sheet/numpy-cheat-sheet-data-
analysis-in-python for all the numpy library
aggregate functions
array = np.arange(1,27)
array
np.sum(array)
351
np.mean(array)
13.5
np.median(array)
13.5
np.min(array)
np.max(array)
26
np.std(array)
7.5
np.var(array)
56.25
np.sqrt(np.var(array))
7.5
NUMPY ARRAY
list(range(0,6))
[0, 1, 2, 3, 4, 5]
list_1 =[2,4,5,3,8,9,5]
list_2 =[3,6,8,6,0,4,3]
lst =[]
for i in range(0,len(list_1)):
x= list_1[i]*list_2[i]
lst.append(x)
The product of list are:- [6, 24, 40, 18, 0, 36, 15]
arr1= np.array([1,2,3,4,5])
arr1 # 1d array
array([1, 2, 3, 4, 5])
arr2=([[1,2,3,4,5],[6,7,8,9,1]])
arr2 #2d array
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 1]]
arr3 = np.zeros([2,3])
arr3
np.zeros((2,3,4))
arr4=np.ones([5,4])
arr4
np.full((4,5),3)
array([[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3]])
arr = np.identity(5)
arr #diagonal matrix
arr6 = np.arange(5,16)
arr6
arr6 = np.arange(5,16,2)
arr6
arr8 = arr7.copy()
arr8
np.random.rand(4,3)
array([1, 2, 3, 4, 5])
arr1.shape
(5,)
arr2
arr3.shape
(2, 3)
arr9 = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
arr9
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
arr9.shape
(2, 2, 2)
arr9.ndim
arr3.ndim
arr1.ndim
arr1.size
arr9.itemsize
4
arr8
arr8.itemsize
int32
array([[[1., 2.],
[3., 4.]],
[[5., 6.],
[7., 8.]]])
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
arr12[:, 2]
arr12[:, 2:4]
array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15],
[18, 19],
[22, 23]])
#SLICING
#for 9,10
# 13,14
arr12[2:4,1:3]
array([[ 9, 10],
[13, 14]])
INDEXING
arr12
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
for i in arr12:
print(i)
[0 1 2 3]
[4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
for i in np.nditer(arr12):
print(i)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
NUMPY OPERATIONS
arr1 = np.array([1,2,3,4,5,6])
arr2 = np.array([4,5,6,7,8,9])
#VECTOR ADDITION
arr1+arr2
#VECTOR MULTIPLICATION
arr1*arr2
arr1*3
#comparision
arr2>3
#dot product
arr3= np.arange(6).reshape(2,3)
arr4 = np.arange(6,12).reshape(3,2)
arr3.dot(arr4)
#maximum
arr4.max()
11
#minimum
arr4.min()
arr4
array([[ 6, 7],
[ 8, 9],
[10, 11]])
array([6, 7])
array([ 6, 8, 10])
array([24, 27])
np.mean(arr4) # MEAN
8.5
1.707825127659933
np.median(arr4) # MEDIAN
8.5
np.exp(arr4) #EXPONENT
array([[ 6, 8, 10],
[ 7, 9, 11]])
arr4 = np.arange(6,12).reshape(2,3)
arr3,arr4
(array([[0, 1, 2],
[3, 4, 5]]),
array([[ 6, 7, 8],
[ 9, 10, 11]]))
array([[ 0, 1, 2, 6, 7, 8],
[ 3, 4, 5, 9, 10, 11]])
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
arr3
array([[0, 1, 2],
[3, 4, 5]])
[array([[0],
[3]]),
array([[1],
[4]]),
array([[2],
[5]])]
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
array([[ 4, 5, 6, 7],
[12, 13, 14, 15],
[16, 17, 18, 19]])
arr = np.random.randint(low=1,high=100,size=20).reshape(4,5)
arr
arr[arr>50]
BROADCASTING
# IN NUMPY ARRAY DESPITE OF DIFFERENT SIZES OF ARRAY , ADDITION IS
POSSIBLE
a1 = np.arange(4).reshape(4,1)
a2= np.arange(12).reshape(4,3)
a1,a2
(array([[0],
[1],
[2],
[3]]),
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]]))
a1+a2
array([[ 0, 1, 2],
[ 4, 5, 6],
[ 8, 9, 10],
[12, 13, 14]])