SlideShare a Scribd company logo
Pandas - Data
Transformational Data
Structure Patterns and
Challenges
Rajesh Manickadas
OrangeScape
07 Sept 2018
Objective
The Objective of this Presentation is to elaborate on Numpy/Pandas and more
in the following light
● Differentiate python data structures and numpy/pandas
● What is Data Transformational Design Patterns ?
● Numpy / Pandas Data Structures and Usage
● Contemplate on Such Patterns for Future
PROGRAM = DATA STRUCTURES + ALGORITHMS
Python Data Structures - Primer
A Refresher to Python Data Structures
Tuples
Immutable
Containers
Lists
Mutable
Containers
Dict
Key Indexed
Containers
Python Data Structures - Functional Optimization Patterns
The Prime Objective is to optimize the data structures for functional programming
Scalars are Python Objects designed
with functional optimization
patterns.
>>> a = 45
>>> b = 45
>>> id(a)
16790784
>>> id(b)
16790784
A
B
45
16790784
List and Lists and List of Lists and
List of List of Lists….Arrays ?
Good for Functional Work and Not Designed for Large Data
Processing
Examples: Transpose, Slicing, Pivoting, Vectorization
Data Transformational Design Pattern Needs
● Data is Memory. Large Data is Huge Memory. Memory is Expensive !
● Data in Real Time changes all the time. It's not a csv :). - Speed !
○ Data Warehouses Vs Databases Vs Pandas
● We try to move from the Functional arena to a Data arena - Data
Structures are to be designed for Data Processing Algorithms
○ Data Needs are Dimensions, Measurable, Searchable, Visualize, Views etc.
● The World of Big Table, Bigquery, Hadoop et al is mixed up with Offline
Data, Slow Processing (Design Needs), Append only, Queryless
● It's just not scientific. Its Business !!
○ Realtime Vs Offline/Batch
○ Reporting and Intelligence Vs Analysis and Research
○ Simple Lookups are going to be tricky in future
Exodus from Functional Program Optimization to Data Transformation Optimization
ndarray
NumPy Data Structures - ndarray - Starting of the Data
Transformational Patterns - “Forget the logic, focus on the data needs”
Ndarrays - Data Transformation Objectives
Meta
Data
Data
Buffer
Metadata Objectives
Flexibility - Ability to twist the data in a performant and pythonic way ex. Transpose, Shape
Reuse - Reuse of the Data Buffer ex. Views
Abstraction - Vectorization,Broadcasting
Data Buffer - Speed and Memory Optimized
A Chunk of Memory starting at a particular location
Moving the pointer ex. Strides - Row Major Order/Column Major Order
NumPy Data Structures - ndarrayNdarrays - Data Transformation Optimizations
PyArrayObect
typedef struct PyArrayObject {
PyObject_HEAD
char *data;
int nd;
npy_intp *dimensions;
npy_intp *strides;
PyObject *base;
PyArray_Descr *descr;
int flags;
PyObject *weakreflist;
} PyArrayObject;
>>> import numpy as np
>>> matx = np.arange(15)
>>> id(matx)
139892166884368
>>> mat3x5 = matx.reshape(3,5)
>>> id(mat3x5)
139892020117712
>>> matx
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14])
>>> mat3x5
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> matx[4] = 100
>>> matx
array([ 0, 1, 2, 3, 100, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14])
>>> mat3x5
array([[ 0, 1, 2, 3, 100],
[ 5, 6, 7, 8, 9],
[ 10, 11, 12, 13, 14]])
>>> _
Dim:2
strides:(40,8)
shape:(3,5)
reshape
Ndarray 1:
matx
Ndarray 2:
mat3x5
Dim:1
strides:(8,)
shape:(15,)
DATA
NumPy Data Structures - More Concepts
The More you know, The More you apply the Data Transformational Patterns for Optimizations (to
reduce memory footprints, improve execution speed etc). It is a Swiss Army Knife
Broadcasting
N-D Iterators
Indexing
Scalar Types
Routines
Shapes and
Views
Pandas - Where Python Meets the Tables(Databases)
For what people see is what they manipulate
Series
(1n)
DataFrame
(2n)
Panels
(3n)
Tables
DataFrame
Data
Indexing
Set Algebra
Immutable
Ordered Set
Hash/Dict
Joins
Unions
Filters
Intersections
Pandas Data Structures- Differentiating from Databases/SQL
Pandas take on Data
● Select and Filters - Shaping and Slicing
● Joins - Joins, Merge, Concat
● Aggregation and Operations - Vectorization, Broadcasting
● Advanced/Dynamic Aggregation
○ Dimensions and Measures Patterns
■ Pivots
● Close Collaboration between the data structure and algorithms
○ Statistical Functions
○ Scientific Functions
○ Machine Learning etc.
○ SciPy
Block Manager - There enters the manager !!!The Manager Data Transformational Pattern, If you want to call it “Under the hood” or “Internals” I am fine with it
Pandas - Indexing a DataFrame
Indexing Organization
Year Total Gas Liquid Solid
1997 250255 12561 66649 159191
1998 255310 12990 71750 158106
1999 271548 11549 77852 169087
2000 281389 11974 82834 172812
...
Label Index
DateTime
Index
Data
Array, ordered,
immutable,
hashtable,int64
Array, ordered,
immutable,
hashtable,
timestamp
Ndarray
data
dype
Index (axis)
columns
Pandas - Time Series - C02 Emissions in India (1858- 2014)Time Series Example
>>> import numpy as np
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> dateparse = lambda dates:
pd.datetime.strptime(dates, '%Y')
>>> co2emission =
pd.read_table('inco2.csv',delimiter=',',header='infer',
parse_dates=True,
index_col='Year',date_parser=dateparse)
>>> co2emission.plot()
<matplotlib.axes.AxesSubplot object at
0x7fd79d20bcd0>
>>> plt.show()
>>> co2solidemission = co2emission['Solid']
>>> co2solidemission.plot()
<matplotlib.axes.AxesSubplot object at
0x7fd79be3bf50>
>>> plt.show()
>>> co2solidemission.mean()
50129.979310344825
Data Transformational Patterns - Where Pandas Fits
Courtesy:Dremio
Challenges
“Nowadays, my rule of thumb for pandas
is that you should have 5 to 10 times as
much RAM as the size of your dataset. So
if you have a 10 GB dataset, you should really
have about 64, preferably 128 GB of RAM if you
want to avoid memory management problems.”
- Wes McKinney
BDFL, Pandas
“10 Things I hate about Pandas”
1. Internals too far from "the metal"
2. No support for memory-mapped datasets
3. Poor performance in database and file ingest /
export
4. Warty missing data support
5. Lack of transparency into memory use, RAM
management
6. Weak support for categorical data
7. Complex groupby operations awkward and slow
8. Appending data to a DataFrame tedious and
very costly
9. Limited, non-extensible type metadata
10. Eager evaluation model, no query planning
11. "Slow", limited multicore algorithms for large
datasets
- Wes McKinney
BDFL, Pandas
Contemplate on Design Patterns for Realtime Analytics and Big Data
● In-Memory Sessions
● Distributed processing
● Realtime Data Collaboration, Unified Datastores
○ Portable Data Frames - Apache Sparrow
● Strings - Data Management
● Performance - Numba, PyPy
● Snapshots and Visualizations
What can future be...
Thank You
Q & A
Ad

Recommended

Python data structures - best in class for data analysis
Python data structures - best in class for data analysis
Rajesh M
 
Data engineering and analytics using python
Data engineering and analytics using python
Purna Chander
 
India software developers conference 2013 Bangalore
India software developers conference 2013 Bangalore
Satnam Singh
 
Data Structures for Statistical Computing in Python
Data Structures for Statistical Computing in Python
Wes McKinney
 
Random forest using apache mahout
Random forest using apache mahout
Gaurav Kasliwal
 
Pandas
Pandas
Jyoti shukla
 
Unit 2 - Data Manipulation with R.pptx
Unit 2 - Data Manipulation with R.pptx
Malla Reddy University
 
Tree representation in map reduce world
Tree representation in map reduce world
Yu Liu
 
Introduction to Data Structure
Introduction to Data Structure
Kamal Singh Lodhi
 
L6 structure
L6 structure
mondalakash2012
 
Analysis using r
Analysis using r
Priya Mohan
 
Bsc cs ii dfs u-1 introduction to data structure
Bsc cs ii dfs u-1 introduction to data structure
Rai University
 
Binomial Heaps and Fibonacci Heaps
Binomial Heaps and Fibonacci Heaps
Amrinder Arora
 
Lecture 1 an introduction to data structure
Lecture 1 an introduction to data structure
Dharmendra Prasad
 
Data clustering using map reduce
Data clustering using map reduce
Varad Meru
 
Training in Analytics, R and Social Media Analytics
Training in Analytics, R and Social Media Analytics
Ajay Ohri
 
Data Structure and Algorithms
Data Structure and Algorithms
iqbalphy1
 
Tree and graph
Tree and graph
Muhaiminul Islam
 
Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]
Alexander Hendorf
 
R Brown-bag seminars : Seminar-8
R Brown-bag seminars : Seminar-8
Muhammad Nabi Ahmad
 
PPT ON MACHINE LEARNING by Ragini Ratre
PPT ON MACHINE LEARNING by Ragini Ratre
RaginiRatre
 
Logistic Regression using Mahout
Logistic Regression using Mahout
tanuvir
 
An efficient data mining framework on hadoop using java persistence api
An efficient data mining framework on hadoop using java persistence api
João Gabriel Lima
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Gabriel Moreira
 
Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2
yannabraham
 
Intro to ggplot2 - Sheffield R Users Group, Feb 2015
Intro to ggplot2 - Sheffield R Users Group, Feb 2015
Paul Richards
 
Transpose and manipulate character strings
Transpose and manipulate character strings
Rupak Roy
 
Datastructures using c++
Datastructures using c++
Gopi Nath
 
No more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in production
Chetan Khatri
 
An Introduction to Spark with Scala
An Introduction to Spark with Scala
Chetan Khatri
 

More Related Content

What's hot (20)

Introduction to Data Structure
Introduction to Data Structure
Kamal Singh Lodhi
 
L6 structure
L6 structure
mondalakash2012
 
Analysis using r
Analysis using r
Priya Mohan
 
Bsc cs ii dfs u-1 introduction to data structure
Bsc cs ii dfs u-1 introduction to data structure
Rai University
 
Binomial Heaps and Fibonacci Heaps
Binomial Heaps and Fibonacci Heaps
Amrinder Arora
 
Lecture 1 an introduction to data structure
Lecture 1 an introduction to data structure
Dharmendra Prasad
 
Data clustering using map reduce
Data clustering using map reduce
Varad Meru
 
Training in Analytics, R and Social Media Analytics
Training in Analytics, R and Social Media Analytics
Ajay Ohri
 
Data Structure and Algorithms
Data Structure and Algorithms
iqbalphy1
 
Tree and graph
Tree and graph
Muhaiminul Islam
 
Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]
Alexander Hendorf
 
R Brown-bag seminars : Seminar-8
R Brown-bag seminars : Seminar-8
Muhammad Nabi Ahmad
 
PPT ON MACHINE LEARNING by Ragini Ratre
PPT ON MACHINE LEARNING by Ragini Ratre
RaginiRatre
 
Logistic Regression using Mahout
Logistic Regression using Mahout
tanuvir
 
An efficient data mining framework on hadoop using java persistence api
An efficient data mining framework on hadoop using java persistence api
João Gabriel Lima
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Gabriel Moreira
 
Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2
yannabraham
 
Intro to ggplot2 - Sheffield R Users Group, Feb 2015
Intro to ggplot2 - Sheffield R Users Group, Feb 2015
Paul Richards
 
Transpose and manipulate character strings
Transpose and manipulate character strings
Rupak Roy
 
Datastructures using c++
Datastructures using c++
Gopi Nath
 
Introduction to Data Structure
Introduction to Data Structure
Kamal Singh Lodhi
 
Analysis using r
Analysis using r
Priya Mohan
 
Bsc cs ii dfs u-1 introduction to data structure
Bsc cs ii dfs u-1 introduction to data structure
Rai University
 
Binomial Heaps and Fibonacci Heaps
Binomial Heaps and Fibonacci Heaps
Amrinder Arora
 
Lecture 1 an introduction to data structure
Lecture 1 an introduction to data structure
Dharmendra Prasad
 
Data clustering using map reduce
Data clustering using map reduce
Varad Meru
 
Training in Analytics, R and Social Media Analytics
Training in Analytics, R and Social Media Analytics
Ajay Ohri
 
Data Structure and Algorithms
Data Structure and Algorithms
iqbalphy1
 
Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]
Alexander Hendorf
 
R Brown-bag seminars : Seminar-8
R Brown-bag seminars : Seminar-8
Muhammad Nabi Ahmad
 
PPT ON MACHINE LEARNING by Ragini Ratre
PPT ON MACHINE LEARNING by Ragini Ratre
RaginiRatre
 
Logistic Regression using Mahout
Logistic Regression using Mahout
tanuvir
 
An efficient data mining framework on hadoop using java persistence api
An efficient data mining framework on hadoop using java persistence api
João Gabriel Lima
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Gabriel Moreira
 
Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2
yannabraham
 
Intro to ggplot2 - Sheffield R Users Group, Feb 2015
Intro to ggplot2 - Sheffield R Users Group, Feb 2015
Paul Richards
 
Transpose and manipulate character strings
Transpose and manipulate character strings
Rupak Roy
 
Datastructures using c++
Datastructures using c++
Gopi Nath
 

Similar to Pandas data transformational data structure patterns and challenges final (20)

No more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in production
Chetan Khatri
 
An Introduction to Spark with Scala
An Introduction to Spark with Scala
Chetan Khatri
 
To understand the importance of Python libraries in data analysis.
To understand the importance of Python libraries in data analysis.
GurpinderSingh98
 
Automate ml workflow_transmogrif_ai-_chetan_khatri_berlin-scala
Automate ml workflow_transmogrif_ai-_chetan_khatri_berlin-scala
Chetan Khatri
 
Python business intelligence (PyData 2012 talk)
Python business intelligence (PyData 2012 talk)
Stefan Urbanek
 
Lecture 1 Pandas Basics.pptx machine learning
Lecture 1 Pandas Basics.pptx machine learning
my6305874
 
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
Chetan Khatri
 
PYTHON-Chapter 4-Plotting and Data Science PyLab - MAULIK BORSANIYA
PYTHON-Chapter 4-Plotting and Data Science PyLab - MAULIK BORSANIYA
Maulik Borsaniya
 
Spark Kafka summit 2017
Spark Kafka summit 2017
ajay_ei
 
Meetup Junio Data Analysis with python 2018
Meetup Junio Data Analysis with python 2018
DataLab Community
 
Best Practices for Building and Deploying Data Pipelines in Apache Spark
Best Practices for Building and Deploying Data Pipelines in Apache Spark
Databricks
 
Intro_2.ppt
Intro_2.ppt
MumitAhmed1
 
Intro.ppt
Intro.ppt
SharabiNaif
 
Intro.ppt
Intro.ppt
Anonymous9etQKwW
 
Data Science for Dummies - Data Engineering with Titanic dataset + Databricks...
Data Science for Dummies - Data Engineering with Titanic dataset + Databricks...
Rodney Joyce
 
Michael Stonebraker How to do Complex Analytics
Michael Stonebraker How to do Complex Analytics
MassTLC
 
Fossasia 2018-chetan-khatri
Fossasia 2018-chetan-khatri
Chetan Khatri
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Big Data Spain
 
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Alexander Hendorf
 
New Developments in Spark
New Developments in Spark
Databricks
 
No more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in production
Chetan Khatri
 
An Introduction to Spark with Scala
An Introduction to Spark with Scala
Chetan Khatri
 
To understand the importance of Python libraries in data analysis.
To understand the importance of Python libraries in data analysis.
GurpinderSingh98
 
Automate ml workflow_transmogrif_ai-_chetan_khatri_berlin-scala
Automate ml workflow_transmogrif_ai-_chetan_khatri_berlin-scala
Chetan Khatri
 
Python business intelligence (PyData 2012 talk)
Python business intelligence (PyData 2012 talk)
Stefan Urbanek
 
Lecture 1 Pandas Basics.pptx machine learning
Lecture 1 Pandas Basics.pptx machine learning
my6305874
 
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
Chetan Khatri
 
PYTHON-Chapter 4-Plotting and Data Science PyLab - MAULIK BORSANIYA
PYTHON-Chapter 4-Plotting and Data Science PyLab - MAULIK BORSANIYA
Maulik Borsaniya
 
Spark Kafka summit 2017
Spark Kafka summit 2017
ajay_ei
 
Meetup Junio Data Analysis with python 2018
Meetup Junio Data Analysis with python 2018
DataLab Community
 
Best Practices for Building and Deploying Data Pipelines in Apache Spark
Best Practices for Building and Deploying Data Pipelines in Apache Spark
Databricks
 
Data Science for Dummies - Data Engineering with Titanic dataset + Databricks...
Data Science for Dummies - Data Engineering with Titanic dataset + Databricks...
Rodney Joyce
 
Michael Stonebraker How to do Complex Analytics
Michael Stonebraker How to do Complex Analytics
MassTLC
 
Fossasia 2018-chetan-khatri
Fossasia 2018-chetan-khatri
Chetan Khatri
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Big Data Spain
 
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Alexander Hendorf
 
New Developments in Spark
New Developments in Spark
Databricks
 
Ad

Recently uploaded (20)

Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
SarahMaeDuallo
 
Data Visualisation in data science for students
Data Visualisation in data science for students
confidenceascend
 
llm_presentation and deep learning methods
llm_presentation and deep learning methods
sayedabdussalam11
 
All the DataOps, all the paradigms .
All the DataOps, all the paradigms .
Lars Albertsson
 
最新版美国约翰霍普金斯大学毕业证(JHU毕业证书)原版定制
最新版美国约翰霍普金斯大学毕业证(JHU毕业证书)原版定制
Taqyea
 
最新版美国佐治亚大学毕业证(UGA毕业证书)原版定制
最新版美国佐治亚大学毕业证(UGA毕业证书)原版定制
Taqyea
 
MRI Pulse Sequence in radiology physics.pptx
MRI Pulse Sequence in radiology physics.pptx
BelaynehBishaw
 
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
benediktnetzer1
 
Camuflaje Tipos Características Militar 2025.ppt
Camuflaje Tipos Características Militar 2025.ppt
e58650738
 
presentation4.pdf Intro to mcmc methodss
presentation4.pdf Intro to mcmc methodss
SergeyTsygankov6
 
Introduction for GenAI for Faculty for University.pdf
Introduction for GenAI for Faculty for University.pdf
Saeed999312
 
Attendance Presentation Project Excel.pptx
Attendance Presentation Project Excel.pptx
s2025266191
 
Artigo - Playing to Win.planejamento docx
Artigo - Playing to Win.planejamento docx
KellyXavier15
 
ppt somu_Jarvis_AI_Assistant_presen.pptx
ppt somu_Jarvis_AI_Assistant_presen.pptx
MohammedumarFarhan
 
Measurecamp Copenhagen - Consent Context
Measurecamp Copenhagen - Consent Context
Human37
 
Shifting Focus on AI: How it Can Make a Positive Difference
Shifting Focus on AI: How it Can Make a Positive Difference
1508 A/S
 
Starbucks in the Indian market through its joint venture.
Starbucks in the Indian market through its joint venture.
sales480687
 
NVIDIA Triton Inference Server, a game-changing platform for deploying AI mod...
NVIDIA Triton Inference Server, a game-changing platform for deploying AI mod...
Tamanna36
 
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
gun3awan88
 
UPS and Big Data intro to Business Analytics.pptx
UPS and Big Data intro to Business Analytics.pptx
sanjum5582
 
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
SarahMaeDuallo
 
Data Visualisation in data science for students
Data Visualisation in data science for students
confidenceascend
 
llm_presentation and deep learning methods
llm_presentation and deep learning methods
sayedabdussalam11
 
All the DataOps, all the paradigms .
All the DataOps, all the paradigms .
Lars Albertsson
 
最新版美国约翰霍普金斯大学毕业证(JHU毕业证书)原版定制
最新版美国约翰霍普金斯大学毕业证(JHU毕业证书)原版定制
Taqyea
 
最新版美国佐治亚大学毕业证(UGA毕业证书)原版定制
最新版美国佐治亚大学毕业证(UGA毕业证书)原版定制
Taqyea
 
MRI Pulse Sequence in radiology physics.pptx
MRI Pulse Sequence in radiology physics.pptx
BelaynehBishaw
 
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
benediktnetzer1
 
Camuflaje Tipos Características Militar 2025.ppt
Camuflaje Tipos Características Militar 2025.ppt
e58650738
 
presentation4.pdf Intro to mcmc methodss
presentation4.pdf Intro to mcmc methodss
SergeyTsygankov6
 
Introduction for GenAI for Faculty for University.pdf
Introduction for GenAI for Faculty for University.pdf
Saeed999312
 
Attendance Presentation Project Excel.pptx
Attendance Presentation Project Excel.pptx
s2025266191
 
Artigo - Playing to Win.planejamento docx
Artigo - Playing to Win.planejamento docx
KellyXavier15
 
ppt somu_Jarvis_AI_Assistant_presen.pptx
ppt somu_Jarvis_AI_Assistant_presen.pptx
MohammedumarFarhan
 
Measurecamp Copenhagen - Consent Context
Measurecamp Copenhagen - Consent Context
Human37
 
Shifting Focus on AI: How it Can Make a Positive Difference
Shifting Focus on AI: How it Can Make a Positive Difference
1508 A/S
 
Starbucks in the Indian market through its joint venture.
Starbucks in the Indian market through its joint venture.
sales480687
 
NVIDIA Triton Inference Server, a game-changing platform for deploying AI mod...
NVIDIA Triton Inference Server, a game-changing platform for deploying AI mod...
Tamanna36
 
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
gun3awan88
 
UPS and Big Data intro to Business Analytics.pptx
UPS and Big Data intro to Business Analytics.pptx
sanjum5582
 
Ad

Pandas data transformational data structure patterns and challenges final

  • 1. Pandas - Data Transformational Data Structure Patterns and Challenges Rajesh Manickadas OrangeScape 07 Sept 2018
  • 2. Objective The Objective of this Presentation is to elaborate on Numpy/Pandas and more in the following light ● Differentiate python data structures and numpy/pandas ● What is Data Transformational Design Patterns ? ● Numpy / Pandas Data Structures and Usage ● Contemplate on Such Patterns for Future PROGRAM = DATA STRUCTURES + ALGORITHMS
  • 3. Python Data Structures - Primer A Refresher to Python Data Structures Tuples Immutable Containers Lists Mutable Containers Dict Key Indexed Containers
  • 4. Python Data Structures - Functional Optimization Patterns The Prime Objective is to optimize the data structures for functional programming Scalars are Python Objects designed with functional optimization patterns. >>> a = 45 >>> b = 45 >>> id(a) 16790784 >>> id(b) 16790784 A B 45 16790784 List and Lists and List of Lists and List of List of Lists….Arrays ? Good for Functional Work and Not Designed for Large Data Processing Examples: Transpose, Slicing, Pivoting, Vectorization
  • 5. Data Transformational Design Pattern Needs ● Data is Memory. Large Data is Huge Memory. Memory is Expensive ! ● Data in Real Time changes all the time. It's not a csv :). - Speed ! ○ Data Warehouses Vs Databases Vs Pandas ● We try to move from the Functional arena to a Data arena - Data Structures are to be designed for Data Processing Algorithms ○ Data Needs are Dimensions, Measurable, Searchable, Visualize, Views etc. ● The World of Big Table, Bigquery, Hadoop et al is mixed up with Offline Data, Slow Processing (Design Needs), Append only, Queryless ● It's just not scientific. Its Business !! ○ Realtime Vs Offline/Batch ○ Reporting and Intelligence Vs Analysis and Research ○ Simple Lookups are going to be tricky in future Exodus from Functional Program Optimization to Data Transformation Optimization
  • 6. ndarray NumPy Data Structures - ndarray - Starting of the Data Transformational Patterns - “Forget the logic, focus on the data needs” Ndarrays - Data Transformation Objectives Meta Data Data Buffer Metadata Objectives Flexibility - Ability to twist the data in a performant and pythonic way ex. Transpose, Shape Reuse - Reuse of the Data Buffer ex. Views Abstraction - Vectorization,Broadcasting Data Buffer - Speed and Memory Optimized A Chunk of Memory starting at a particular location Moving the pointer ex. Strides - Row Major Order/Column Major Order
  • 7. NumPy Data Structures - ndarrayNdarrays - Data Transformation Optimizations PyArrayObect typedef struct PyArrayObject { PyObject_HEAD char *data; int nd; npy_intp *dimensions; npy_intp *strides; PyObject *base; PyArray_Descr *descr; int flags; PyObject *weakreflist; } PyArrayObject; >>> import numpy as np >>> matx = np.arange(15) >>> id(matx) 139892166884368 >>> mat3x5 = matx.reshape(3,5) >>> id(mat3x5) 139892020117712 >>> matx array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) >>> mat3x5 array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) >>> matx[4] = 100 >>> matx array([ 0, 1, 2, 3, 100, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) >>> mat3x5 array([[ 0, 1, 2, 3, 100], [ 5, 6, 7, 8, 9], [ 10, 11, 12, 13, 14]]) >>> _ Dim:2 strides:(40,8) shape:(3,5) reshape Ndarray 1: matx Ndarray 2: mat3x5 Dim:1 strides:(8,) shape:(15,) DATA
  • 8. NumPy Data Structures - More Concepts The More you know, The More you apply the Data Transformational Patterns for Optimizations (to reduce memory footprints, improve execution speed etc). It is a Swiss Army Knife Broadcasting N-D Iterators Indexing Scalar Types Routines Shapes and Views
  • 9. Pandas - Where Python Meets the Tables(Databases) For what people see is what they manipulate Series (1n) DataFrame (2n) Panels (3n) Tables DataFrame Data Indexing Set Algebra Immutable Ordered Set Hash/Dict Joins Unions Filters Intersections
  • 10. Pandas Data Structures- Differentiating from Databases/SQL Pandas take on Data ● Select and Filters - Shaping and Slicing ● Joins - Joins, Merge, Concat ● Aggregation and Operations - Vectorization, Broadcasting ● Advanced/Dynamic Aggregation ○ Dimensions and Measures Patterns ■ Pivots ● Close Collaboration between the data structure and algorithms ○ Statistical Functions ○ Scientific Functions ○ Machine Learning etc. ○ SciPy
  • 11. Block Manager - There enters the manager !!!The Manager Data Transformational Pattern, If you want to call it “Under the hood” or “Internals” I am fine with it
  • 12. Pandas - Indexing a DataFrame Indexing Organization Year Total Gas Liquid Solid 1997 250255 12561 66649 159191 1998 255310 12990 71750 158106 1999 271548 11549 77852 169087 2000 281389 11974 82834 172812 ... Label Index DateTime Index Data Array, ordered, immutable, hashtable,int64 Array, ordered, immutable, hashtable, timestamp Ndarray data dype Index (axis) columns
  • 13. Pandas - Time Series - C02 Emissions in India (1858- 2014)Time Series Example >>> import numpy as np >>> import pandas as pd >>> import matplotlib.pyplot as plt >>> dateparse = lambda dates: pd.datetime.strptime(dates, '%Y') >>> co2emission = pd.read_table('inco2.csv',delimiter=',',header='infer', parse_dates=True, index_col='Year',date_parser=dateparse) >>> co2emission.plot() <matplotlib.axes.AxesSubplot object at 0x7fd79d20bcd0> >>> plt.show() >>> co2solidemission = co2emission['Solid'] >>> co2solidemission.plot() <matplotlib.axes.AxesSubplot object at 0x7fd79be3bf50> >>> plt.show() >>> co2solidemission.mean() 50129.979310344825
  • 14. Data Transformational Patterns - Where Pandas Fits Courtesy:Dremio
  • 15. Challenges “Nowadays, my rule of thumb for pandas is that you should have 5 to 10 times as much RAM as the size of your dataset. So if you have a 10 GB dataset, you should really have about 64, preferably 128 GB of RAM if you want to avoid memory management problems.” - Wes McKinney BDFL, Pandas “10 Things I hate about Pandas” 1. Internals too far from "the metal" 2. No support for memory-mapped datasets 3. Poor performance in database and file ingest / export 4. Warty missing data support 5. Lack of transparency into memory use, RAM management 6. Weak support for categorical data 7. Complex groupby operations awkward and slow 8. Appending data to a DataFrame tedious and very costly 9. Limited, non-extensible type metadata 10. Eager evaluation model, no query planning 11. "Slow", limited multicore algorithms for large datasets - Wes McKinney BDFL, Pandas
  • 16. Contemplate on Design Patterns for Realtime Analytics and Big Data ● In-Memory Sessions ● Distributed processing ● Realtime Data Collaboration, Unified Datastores ○ Portable Data Frames - Apache Sparrow ● Strings - Data Management ● Performance - Numba, PyPy ● Snapshots and Visualizations What can future be...

Editor's Notes

  • #3: Good Morning. We are going to objectively see why numpy and pandas in a plethora of Big data tools and how to harness them. Fundamentally functional programs have to be rewired to solve data transformation work, as they were not designed for it.
  • #4: Python lists and Numpy array lists difference
  • #5: Optimization of Memory for functions, data is tightly associated with functions/classes. They are titlly coupled. Think of Pivot, Transformation, Inserts, Views Functional Programming aims at solving functions. Functions are Mathematical, Expressions, Polynomials, Identities, Equations so on and so forth. Softwares are memory driven and they are limited. Hence Arrays, especially dynamic typed and size not mentioned are super bad for functional programmers to design so they transfer the problem to the developers or give us something cheap called Lists, which is super efficient. I call the “Marginal/Practical Optimizations” exists in programming languages like python stores the first 500 or 5000 as constants.. Everything is a reference to it. Non Metadata based model. No Items
  • #6: Large Data is like a Titanic Ship, You can either move it like a Sukhoi fighter nor can you create one all the time ! Data Structures designed for Functional programs are incapable of handling them. Neither are the Numpy, Pandas and so forth. SQL is pythonic Amen. We are in the world of cloud and look at the memory cost and machines of higher grades. We run 300+ AWS Instances and 4000+ Google Instances for large volume of customers. Where t1.small to a t1.medium is huge. Data warehousing folks knows it all, no secret trick it's all dimension and measure
  • #7: That's the starting of the Data Transformation Patterns. It all started with Numpy. Forget the logic, Focus on the data. Data Transformation is quite easy. It's only manipulating the real data, then why change the data (copy) but rather change only the metadata/meaning. There is no point to write for loops or create new in memory objects, do housekeeping so on and so forth
  • #8: Reshaping or applying a Data Transformational Pattern. Explain the Metadata and the Data is just a pointer. Speak something on the Algorithmic optimization, precompiled c code etc.
  • #9: It's a Swiss Army Knife.
  • #10: R, r2py, SQL are leveraged for the first time. Now what we know are all data transformation patterns from the simple relational algebra to indexing to
  • #11: Int64Index, Float64Index,MultiIndex,DateTimeIndex,TimedeltaIndex,PeriodIndex. You are trying to create a mini
  • #12: The Problems are on the table. Ndarray are fast than Pandas yes they are !!! (don't talk the obvious). Its complex data management (data buffer). It deals with Strings. It uses multiple performance optimizations. It's only by long working and expertise you can do it with the simple concate and append. It
  • #13: R, r2py, SQL ,
  • #14: Int64Index, Float64Index,MultiIndex,DateTimeIndex,TimedeltaIndex,PeriodIndex
  • #17: R, r2py, SQL ,
  • #18: R, r2py, SQL ,