---
# System prepended metadata

title: '4.Thursday, 18-07-2019, Numby and Pandas'

---

# 4.Thursday, 18-07-2019, Numby and Pandas
### Numby

NumPy, short for Numerical Python

* Functions

|Function Name	| NaN-safe Version	| Description
|:-|:-|:-|
| np.sum	| np.nansum	| Compute sum of elements |
| np.prod |	np.nanprod |	Compute product of elements |
| np.mean |	np.nanmean |	Compute mean of elements |
| np.std |	np.nanstd |	Compute standard deviation |
| np.var |	np.nanvar |	Compute variance |
| np.min |	np.nanmin |	Find minimum value |
| np.max |	np.nanmax |	Find maximum value |
| np.argmin |	np.nanargmin |	Find index of minimum value |
| np.argmax |	np.nanargmax |	Find index of maximum value |
| np.median |	np.nanmedian |	Compute median of elements |
| np.percentile |	np.nanpercentile |	Compute rank-based statistics of elements |
| np.any |	N/A | 	Evaluate whether any elements are true |
| np.all |	N/A	 | Evaluate whether all elements are true |

* Array
```
a = np.array([[1, 2, 3]])
print([1,2,3])                     # [1, 2, 3]
print(a)                           # [1 2 3]
print(type(a))                     # <class 'numpy.ndarray'>
print(a.dtype)                     # int64
print(a.shape)                     # (3,)
print(a.ndim)                      # 2 (only 1 matrix with 1 row & 1 column)
print(a[0][2])           
a[0][1] = 5                  
print(a)                           # [[1 5 3]]

b = np.array([[1,2,3],
              [4,5,6]])    # Create a rank 2 array
print(b.shape)                     # Prints "(2, 3)"
print(b[0, 0], b[0, 1], b[1, 0])   # Prints "1 2 4"

print(b[:2, :2])                   # [[1 2]
                                     [4 5]]

print(b[0, 0])                     # 1
```



### Image

* Library
```
from skimage import io
photo = io.imread('/content/gdrive/My Drive/CoderSchool-FTMLE/data/assets/images/landscape.jpg')
print(type(photo))

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("whitegrid", {'axes.grid' : False})
```

* Function shows photo
```
def show_image(photo):
  plt.figure(figsize=(12,12))
  plt.axis("off")
  plt.imshow(photo)
```

>[ a : b : c ]
>a: width
>b: height
>c: pixel, color
>

### Pandas

Work with Data Frame

* Library
```
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
```

* Function
```
titanic.head()

titanic.tail(1)

titanic.sample(5)

titanic.info()

titanic.describe()

titanic['Sex'].unique()

titanic['Sex'].value_counts()

titanic['Pclass'].unique()

titanic['Pclass'].value_counts()

titanic['Survived'].value_counts()
```

### Seaborn
Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.

* Charts
```
sns.countplot(x='Sex', hue='Survived', data=titanic)

sns.distplot(tips['total_bill'], bins=20)

sns.jointplot(x='tip', y='total_bill', data=tips)

sns.jointplot(x='tip', y='total_bill', kind='kde', data=tips)

sns.heatmap(tips.corr(), annot=True, fmt='.3f', cmap='YlGnBu')

sns.boxplot(x='sex', y='total_bill', hue='smoker', data=tips)

sns.swarmplot(x='day', y='tip', hue='smoker', data=tips)

sns.violinplot(x='day', y='tip', hue='smoker', data=tips)

tips.groupby('day').sum()['total_bill'].plot(kind='bar') --draw by method
```

  * Code for Pie chart
    
```
labels = []
sizes = []
explode = []

labels = tips['size'].value_counts().index.sort_values()
for index, size in enumerate(labels):
    sizes.append(size)
    if size==3:
        explode.append(0.2)
    else:
        explode.append(0)

f, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
        shadow=True, startangle=90)
# Equal aspect ratio ensures that pie is drawn as a circle
ax1.axis('equal')  
plt.tight_layout()
plt.show()
```