Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Learning Path: From Python Programming to Data Science
Rating: 3.4 out of 5(39 ratings)
421 students

Learning Path: From Python Programming to Data Science

Unleash the true potential of Python by learning basic programming and high-end data science techniques.
Last updated 5/2017
English

What you'll learn

  • Familiarize yourself with Python
  • Learn data analysis using modern processing techniques with NumPy, SciPy, and Pandas
  • Determine different approaches to data visualization, and how to choose the most appropriate one for your needs
  • Make 3D visualizations mainly using mplot3d
  • Work with image data and build systems for image recognition and biometric face recognition
  • Grasp how to use deep neural networks to build an optical character recognition system

Course content

5 sections240 lectures20h 55m total length
  • The Course Overview3:24

    This video provides an overview of the entire course.

  • Python Basic Syntax and Block Structure11:54

    The goal of this video is to provide a basic understanding of the Python language constructs.

  • Built-in Data Structures and Comprehensions8:54

    The goal of this video is to ensure we have the basic ability to operate with Python's most common data structures.

  • First-Class Functions and Classes5:49

    People used to lower-level languages are unfamiliar with First-class functions and classes; we'll take a look at them in this video.

  • Extensive Standard Library5:55

    Python comes with a lot of tools. We need to be familiar with them in order to make the best use of the language. That's the topic we will be covering in this video.

  • New in Python 3.56:01

    The goal of this video is to look at the overview of recent language changes in Python.

  • Downloading and Installing Python5:16

    In this video, we are going to download and install the correct version of Python and make sure it's functional.

  • Using the Command-Line and the Interactive Shell4:01

    The fastest way to get rolling is to use a textual interface, so we need to make sure we know how to use it. That's the goal in this video.

  • Installing Packages with pip3:16

    Python has good support for installing and managing third-party code packages; let's take a look at them in this video.

  • Finding Packages in the Python Package Index4:29

    There's a lot of good code available. How do we find it? Let's take a look in this video.

  • Creating an Empty Package5:50

    The goal of this video is to know how to create the structure of a Python program.

  • Adding Modules to the Package5:30

    A package containing no code isn't of much use. How do we make it do something? Let's take a look at it in this video.

  • Importing One of the Package's Modules from Another5:26

    The goal in this video is to understand how we can make code in separate modules of the package interact.

  • Adding Static Data Files to the Package2:53

    A complete program usually involves static data files along with the code. How do we integrate non-python files in a package? Let's find out!

  • PEP 8 and Writing Readable Code7:50

    The computer can read our code as long as the syntax is correct, but humans require more care. Let's see how we can write readable code in Python.

  • Using Version Control4:47

    If more than one programmer is working on a project, version control is a necessity. Even for a single programmer, version control is useful. We will take a look at it in this video.

  • Using venv to Create a Stable and Isolated Work Area4:40

    In this video, we will see how writing a program can take a while, and it's best that external changes to the development system do not impact the process.

  • Getting the Most Out of docstrings 1: PEP 257 and docutils8:00

    Properly formatted docstrings can be automatically used by IDEs and transformed into HTML. Let's take a peek into it in this video.

  • Getting the Most Out of docstrings 2: doctest4:04

    The goal of this video is to understand why it's important that examples in the documentation stay consistent with the code.

  • Making a Package Executable via python -m5:51

    Writing Python code packages is all well and good, but how to we make a program? We will take a look at it in this video.

  • Handling Command-Line Arguments with argparse6:21

    It's useful to be able to read data from the program command line. The argparse package makes it easy. Let's see it in action in this video.

  • Interacting with the User4:38

    What do we do when we need information to flow both ways with the user?

  • Executing Other Programs with Subprocess9:09

    Learn to execute and control other programs from Python using the subprocess module, including call, check_call, check_output, and run, plus the open class for bidirectional data channels.

  • Using Shell Scripts or Batch Files to Run Our Programs3:00

    It's often useful to have a launcher file for a program, which can be double-clicked in a GUI or used a shorthand from the command line. A simple script or batch file does the trick, let's see how.

  • Using concurrent.futures13:52

    Parallel processing has pitfalls, but Python's high-level parallel processing framework makes it easy to dodge them. Let's look at it in this video.

  • Using Multiprocessing11:22

    When our program doesn't fit the conceptual model of concurrent.futures, we can use multiprocessing to define our own model. Let's see how.

  • Understanding Why This Isn't Like Parallel Processing8:01

    At first glance, Python's coroutine scheduling looks a lot like multiprocessing or multithreading. What's the difference? Let's get to know this better.

  • Using the asyncio Event Loop and Coroutine Scheduler6:52

    The goal of this video is to set up and run the asyncio asyncio coroutine scheduler.

  • Waiting for Data to Become Available3:29

    In this video we will see how do we actually use asyncio's Future objects.

  • Synchronizing Multiple Tasks6:17

    The goal of this video is to understand how to keep coroutines from jamming each other up and locking the program.

  • Communicating Across the Network3:45

    In this video, we will see how do asyncio's actual I/O facilities work.

  • Using Function Decorators6:45

    Functions are very useful, but it would be nice to be able to tweak them to suit our specific needs. Enter function decorators.

  • Function Annotations7:08

    If we're going to be using functions as data, it would be nice to have metadata for the functions too. Function annotations give us that.

  • Class Decorators5:52

    Class objects are basically data structures, so it would be useful to be able to rewrite them as they're defined. Class decorators let us do that.

  • Metaclasses5:35

    Class decorators take effect after Python has created a class object. If we want our code involved before the class object is created, we need to use a metaclass.

  • Context Managers5:52

    Pieces of code often come in matched pairs, with one piece needing to run before something happens and the matching piece after. Context managers make sure the pieces match up.

  • Descriptors5:37

    We can plug code into Python's attribute access mechanism to control what it means to read, write, or delete a member variable.

  • Understanding the Principles of Unit Testing5:07

    Testing is critical, but it can feel like a burden. Automated unit testing and test-driven development can solve this problem.

  • Using the unittest Package7:27

    The unittest package provides a framework for writing automatic tests; let's check it out.

  • Using unittest.mock6:12

    We need to separate the code we're testing from everything else. When the code interacts with other objects, we can replace them with mock objects. Let's see how.

  • Using unittest's Test Discovery4:30

    As a test suite grows, running the tests individually becomes impractical. We need the system to find and run them in large swaths.

  • Using Nose for Unified Test Discover and Reporting3:42

    Sometimes we want a more flexible test runner than the one built in to unittest. Nose to the rescue.

  • What Does Reactive Programming Mean?2:49

    For the newcomer, it can be difficult to figure out exactly what other people are talking about when they say "reactive programming".

  • Building a Simple Reactive Programming Framework7:21

    Many of the discussions of reactive programming are highly theoretical. Building a reactive programming system for ourselves will help show how simple the basic ideas are.

  • Using the Reactive Extensions for Python (RxPY)10:21

    Creating a complete and correct reactive programming framework takes a lot of time and effort. Since somebody's already done it, let's take a look at the result.

  • Microservices and the Advantages of Process Isolation4:12

    We need our web server to scale up and maintain high availability. Let's see how we can do that.

  • Building a High-Level Microservice with Flask9:59

    We need a microservice that works well with the web infrastructure or perhaps is even directly accessible to JavaScript running in web browsers.

  • Building a Low-Level Microservice with nameko6:24

    Sometimes, we'd rather have all of the protocol-level stuff handled automatically for our microservice.

  • Advantages and Disadvantages of Compiled Code4:41

    Sometimes we need to access or create compiled code and sometimes we don't need it as much as we think. How do we know which is which?

  • Accessing a Dynamic Library Using ctypes7:59

    There's a lot of useful code out that wasn't written for Python, but most of it is accessible to C code.

  • Interfacing with C Code Using Cython12:34

    Sometimes we just need to write a code that runs close to the metal. Cython gives us that option.

Requirements

  • Basic knowledge of any programming language (preferably Python)
  • Some knowledge of linear algebra and statistics would be helpful, but is not mandatory

Description

Python has become the language of choice for most data analysts/data scientists to perform various tasks of data science. If you’re looking forward to implementing Python in your data science projects to enhance data discovery, then this is the perfect Learning Path is for you. Starting out at the basic level, this Learning Path will take you through all the stages of data science in a step-by-step manner.

Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

We begin this journey with nailing down the fundamentals of Python. You’ll be introduced to basic and advanced programming concepts of Python before moving on to data science topics. Then, you’ll learn how to perform data analysis by taking advantage of the core data science libraries in the Python ecosystem. You’ll also understand the data visualization concepts better, learn how to apply them and  overcome any challenges that you might face while implementing them. Moving ahead, you’ll learn to use a wide variety of machine learning algorithms to solve real-world problems. Finally, you’ll learn deep learning along with a brief  introduction to TensorFlow.

By the end of the Learning Path, you’ll be able to improve the efficiency of your data science projects using Python.

Meet Your Experts:

We have combined the best works of the following esteemed authors to ensure that your learning journey is smooth:

Daniel Arbuckle got his Ph.D. in Computer Science from the University of Southern California.

Benjamin Hoff spent 3 years working as a software engineer and team leader doing graphics processing, desktop application development, and scientific facility simulation using a mixture of C++ and Python.

Dimitry Foures is a data scientist with a background in applied mathematics and theoretical physics.

Giuseppe Vettigli is a data scientist who has worked in the research industry and academia for many years.

Igor Milovanović is an experienced developer, with strong background in Linux system knowledge and software engineering education.

Prateek Joshi is an artificial intelligence researcher, published author of five books, and TEDx speaker.

Eder Santana is a PhD candidate on Electrical and Computer Engineering. His thesis topic is on Deep and Recurrent neural networks.

Who this course is for:

  • If you are a developer, a data analyst, or a data scientist who is familiar with the basics of Python and want to broaden your knowledge to develop data science projects efficiently, then this Learning Path is for you.
  • Even if you are not very familiar with Python but want to establish your career in the data science field, this Learning Path will help you as it starts with the basics and takes you on a journey to become an expert in the technology.