Skip to content

mikeroyal/Physics-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation


Physics Guide

A guide covering Physics including the Formulas, Equations, Laws and Principles that will help you better understand the applications of Physics.

Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.


Table of Contents

  1. Physics Learning Resources

  2. Mechanics

  • Types of Mechanics

    • Classical mechanics
    • Quantum mechanics
  • Types of Classical Mechanics

    • Kinematics
    • Statics
    • Dynamics
  1. Kinematics

    • Speed
    • Velocity
    • Acceleration formula
    • Kinematic Equations
    • Different types of motion
    • Projectile motion equations
    • Difference between speed and velocity
    • Difference between uniform and non-uniform motion
    • First equation of motion derivation
    • Second equation of motion derivation
    • Third equation of motion derivation by graphical method
    • Value of acceleration due to gravity
    • Difference between speed and acceleration
    • Difference between distance and displacement
    • Difference between velocity and acceleration
  2. Dynamics

    • Types of forces
    • Newton’s laws of motion
    • Newton’s first law of motion
    • Newton’s second law of motion
    • Newton’s third law of motion
    • Law of conservation of momentum
  3. Types of friction

    • Difference between center of mass and center of gravity
    • Difference between conservative and non-conservative forces
    • Difference between centripetal and centrifugal force
    • Difference between force and pressure
  4. Gravitation

    • Gravity
    • Kepler’s laws of planetary motion
    • Mass of the earth
    • Artificial gravity formula
    • Relation between escape velocity and orbital velocity
    • Gravitational potential energy
  5. Work & Energy

    • Forms of Energy
    • Kinetic energy
    • Potential energy
    • Difference between kinetic energy and potential energy
    • Work energy theorem derivation
    • Energy sources
    • Renewable energy sources
    • Difference between renewable and non-renewable energy sources
    • Conservation of mechanical energy
    • Solar energy
    • Work definition in physics
    • Relation between power force and velocity
    • Difference between instantaneous and average power
  6. Turning Effect of Forces

    • Turning effect of forces
    • States of equilibrium
    • Conditions of equilibrium
    • Difference between stable, unstable, and neutral equilibrium
  7. Collisions

    • Collision and its types
    • Difference between elastic and inelastic collision
  8. Fluid Dynamics

    • Fluid Mechanics

      • Equation of continuity derivation
      • Bernoulli Equation derivation and applications
      • Viscosity and its applications
      • Pressure in liquids formula
      • Pascal law formula and its applications
      • Archimedes principle and law of floatation
  9. Electric charge, field, and potential

    • Charge and electric force (Coulomb's law): Electric charge, field, and potential
    • Electric field: Electric charge, field, and potential
    • Electric potential energy, electric potential, and voltage: Electric charge, field, and potential
  10. Circuits

    • Ohm's law and circuits with resistors: Circuits
    • Circuits with capacitors: Circuits
  11. Magnetic forces, magnetic fields, and Faraday's law

    • Magnets and Magnetic Force: Magnetic forces, magnetic fields, and Faraday's law
    • Magnetic field created by a current: Magnetic forces, magnetic fields, and Faraday's law
    • Electric motors: Magnetic forces, magnetic fields, and Faraday's law
    • Magnetic flux and Faraday's law
  12. Electromagnetic waves and interference

    • Introduction to electromagnetic waves: Electromagnetic waves and interference
    • Interference of electromagnetic waves
  13. Geometric optics

    • Reflection and refraction: Geometric optics
    • Mirrors: Geometric optics
    • Lenses
  14. Quantum Physics

  • Photons: Quantum Physics
  • Atoms and electrons: Quantum Physics
  • Quantum numbers and orbitals: Quantum Physics
  • Nuclei
  1. MATLAB Development

  2. CUDA Development

  3. R Development

  4. Python Development

  5. Julia Development

Physics Learning Resources

Back to the Top

Physics | MIT OpenCourseWare | Free Online Course Materials

Quantum Physics I | Physics | MIT OpenCourseWare

High School Physics | MIT OpenCourseWare | Free Online Course Materials

Physics - Wolfram|Alpha

Quantum Physics Full Course | YouTube

Physics by Dr. Shini Somara - YouTube

Physics Online | YouTube

Top Physics Courses - Learn Physics Online | Coursera

Particle Physics: an Introduction | Coursera

Exploring Quantum Physics | Coursera

Top Physics Courses Online | Udemy

Learn Physics with Online Courses and Lessons | edX

Learn Astrophysics with Online Courses and Classes | edX

Learn Quantum Physics and Mechanics with Online Courses and Lessons | edX

Intro to Physics | Udacity Free Courses

Physics Courses | UC Berkeley Physics

Free Online Physics Courses | Open Culture

Physics | Open Yale Courses

Online Physics Courses | Harvard University

Principles of Physics Mechanics - Harvard Online Courses

Online Physics Courses | Stony Brook

Online/Virtual Courses - Department of Physics and Astronomy | Michigan State

Mechanics

Back to the Top

Classical mechanics is the study of macroscopic objects(projectiles, spacecraft, planets, and stars).

Quantum mechanics is the study of microscopic objects(atoms and subatomic particles).

Types of Mechanics

  • Classical mechanics
  • Quantum mechanics

Types of Classical Mechanics

  • Kinematics
  • Statics
  • Dynamics


Mechanic Equations


Mechanic Equations pt.2

Kinematics

Back to the Top

  • Speed
  • Velocity
  • Acceleration formula
  • Kinematic Equations
  • Different types of motion
  • Projectile motion equations
  • Difference between speed and velocity
  • Difference between uniform and non-uniform motion
  • First equation of motion derivation
  • Second equation of motion derivation
  • Third equation of motion derivation by graphical method
  • Value of acceleration due to gravity
  • Difference between speed and acceleration
  • Difference between distance and displacement
  • Difference between velocity and acceleration


Kinematic Equations


Kinematic Equations pt.2

Dynamics

Back to the Top

  • Types of forces
  • Newton’s laws of motion
  • Newton’s first law of motion
  • Newton’s second law of motion
  • Newton’s third law of motion
  • Law of conservation of momentum


Dynamics Equations

Types of friction

Back to the Top

  • Difference between center of mass and center of gravity
  • Difference between conservative and non conservative forces
  • Difference between centripetal and centrifugal force
  • Difference between force and pressure


Source: scienceabc

Gravitation

Back to the Top

  • Gravity
  • Kepler’s laws of planetary motion
  • Mass of the earth
  • Artificial gravity formula
  • Relation between escape velocity and orbital velocity
  • Gravitational potential energy


Newton's Law of Gravitation. Source: me-mechanicalengineering

Work & Energy

Back to the Top

  • Forms of Energy
  • Kinetic energy
  • Potential energy
  • Difference between kinetic energy and potential energy
  • Work energy theorem derivation
  • Energy sources
  • Renewable energy sources
  • Difference between renewable and non renewable energy sources
  • Conservation of mechanical energy
  • Solar energy
  • Work definition in physics
  • Relation between power force and velocity
  • Difference between instantaneous and average power


Work and Engery Equations

Turning Effect of Forces

Back to the Top

  • Turning effect of forces
  • States of equilibrium
  • Conditions of equilibrium
  • Difference between stable, unstable, and neutral equilibrium


Formula of Momentum for Energy And Turning Effect. Source: slideshare

Collisions

Back to the Top

  • Collision and its types
  • Difference between elastic and inelastic collision



Fluid Dynamics

Back to the Top


Computer simulation of high velocity air flow around the Space Shuttle during re-entry. Source:NASA


**Bernoulli's Equation. Source: [NASA](https://www.grc.nasa.gov/WWW/k-12/rocket.html)**

Fluid Mechanics

- Equation of continuity  derivation
- Bernoulli Equation  derivation and applications
- Viscosity and its applications
- Pressure in liquids formula
- Pascal law formula and its applications
- Archimedes principle and law of floatation


Euler Equations. Source: NASA


Navier-Stokes Equations. Source: NASA


Pascal's law


Archimedes Principle. Source:sciencefacts

Electric charge, field, and potential

Back to the Top

 - Charge and electric force (Coulomb's law): Electric charge, field, and potential
 - Electric field: Electric charge, field, and potential
 - Electric potential energy, electric potential, and voltage: Electric charge, field, and potential


Electric Potential Energy. Source: sparkfun


Circuits

Back to the Top

- Ohm's law and circuits with resistors: Circuits
- Circuits with capacitors: Circuits


Electric Circuits. Source: sdsu-physics


Symbols of Circuits .Source: andrewpover.co.uk

Magnetic forces, magnetic fields, and Faraday's law

Back to the Top

- Magnets and Magnetic Force: Magnetic forces, magnetic fields, and Faraday's law
- Magnetic field created by a current: Magnetic forces, magnetic fields, and Faraday's law
- Electric motors: Magnetic forces, magnetic fields, and Faraday's law
- Magnetic flux and Faraday's law


Magnetic Field. Source: vecteezy


Amphere's Law. Source: sdsu-physics


Farady's law. Source: sdsu-physics

Electromagnetic waves and interference

Back to the Top

- Introduction to electromagnetic waves: Electromagnetic waves and interference
- Interference of electromagnetic waves


Electromagnetic Wave. Source: differencebetween


EMI Spectrum. Source: electrical4u

Geometric optics

Back to the Top

- Reflection and refraction: Geometric optics
- Mirrors: Geometric optics
- Lenses


Geometric Optics - Raytracing. Source: sdsu-physics


Geometric Optics - Reflection. Source: sdsu-physics

Quantum Physics

Back to the Top

  • Photons: Quantum Physics
  • Atoms and electrons: Quantum Physics
  • Quantum numbers and orbitals: Quantum Physics
  • Nuclei


Map of Quantum Physics. Source: Domain of Science


Quantum Physics Systems equations. pinterest

MATLAB Development

Back to the Top


MATLAB Learning Resources

MATLAB is a programming language that does numerical computing such as expressing matrix and array mathematics directly.

MATLAB Documentation

Getting Started with MATLAB

MATLAB and Simulink Training from MATLAB Academy

MathWorks Certification Program

MATLAB Online Courses from Udemy

MATLAB Online Courses from Coursera

MATLAB Online Courses from edX

Building a MATLAB GUI

MATLAB Style Guidelines 2.0

Setting Up Git Source Control with MATLAB & Simulink

Pull, Push and Fetch Files with Git with MATLAB & Simulink

Create New Repository with MATLAB & Simulink

PRMLT is Matlab code for machine learning algorithms in the PRML book.

MATLAB Tools

MATLAB Online allows to users to uilitize MATLAB and Simulink through a web browser such as Google Chrome.

Simulink is a block diagram environment for Model-Based Design. It supports simulation, automatic code generation, and continuous testing of embedded systems.

MATLAB Schemer is a MATLAB package makes it easy to change the color scheme (theme) of the MATLAB display and GUI.

LRSLibrary is a Low-Rank and Sparse Tools for Background Modeling and Subtraction in Videos. The library was designed for moving object detection in videos, but it can be also used for other computer vision and machine learning problems.

Robotics Toolbox for MATLAB provides a toolbox that brings robotics specific functionality(designing, simulating, and testing manipulators, mobile robots, and humanoid robots) to MATLAB, exploiting the native capabilities of MATLAB (linear algebra, portability, graphics). The toolbox also supports mobile robots with functions for robot motion models (bicycle), path planning algorithms (bug, distance transform, D*, PRM), kinodynamic planning (lattice, RRT), localization (EKF, particle filter), map building (EKF) and simultaneous localization and mapping (EKF), and a Simulink model a of non-holonomic vehicle. The Toolbox also including a detailed Simulink model for a quadrotor flying robot.

SEA-MAT is a collaborative effort to organize and distribute Matlab tools for the Oceanographic Community.

Gramm is a complete data visualization toolbox for Matlab. It provides an easy to use and high-level interface to produce publication-quality plots of complex data with varied statistical visualizations. Gramm is inspired by R's ggplot2 library.

hctsa is a software package for running highly comparative time-series analysis using Matlab.

Plotly is a Graphing Library for MATLAB.

YALMIP is a MATLAB toolbox for optimization modeling.

GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation.

CUDA Development

Back to the Top



CUDA Toolkit. Source: NVIDIA Developer CUDA

CUDA Learning Resources

CUDA is a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs). With CUDA, developers are able to dramatically speed up computing applications by harnessing the power of GPUs. In GPU-accelerated applications, the sequential part of the workload runs on the CPU, which is optimized for single-threaded. The compute intensive portion of the application runs on thousands of GPU cores in parallel. When using CUDA, developers can program in popular languages such as C, C++, Fortran, Python and MATLAB.

CUDA Toolkit Documentation

CUDA Quick Start Guide

CUDA on WSL

CUDA GPU support for TensorFlow

NVIDIA Deep Learning cuDNN Documentation

NVIDIA GPU Cloud Documentation

NVIDIA NGC is a hub for GPU-optimized software for deep learning, machine learning, and high-performance computing (HPC) workloads.

NVIDIA NGC Containers is a registry that provides researchers, data scientists, and developers with simple access to a comprehensive catalog of GPU-accelerated software for AI, machine learning and HPC. These containers take full advantage of NVIDIA GPUs on-premises and in the cloud.

CUDA Tools Libraries, and Frameworks

CUDA Toolkit is a collection of tools & libraries that provide a development environment for creating high performance GPU-accelerated applications. The CUDA Toolkit allows you can develop, optimize, and deploy your applications on GPU-accelerated embedded systems, desktop workstations, enterprise data centers, cloud-based platforms and HPC supercomputers. The toolkit includes GPU-accelerated libraries, debugging and optimization tools, a C/C++ compiler, and a runtime library to build and deploy your application on major architectures including x86, Arm and POWER.

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN accelerates widely used deep learning frameworks, including Caffe2, Chainer, Keras, MATLAB, MxNet, PyTorch, and TensorFlow.

CUDA-X HPC is a collection of libraries, tools, compilers and APIs that help developers solve the world's most challenging problems. CUDA-X HPC includes highly tuned kernels essential for high-performance computing (HPC).

NVIDIA Container Toolkit is a collection of tools & libraries that allows users to build and run GPU accelerated Docker containers. The toolkit includes a container runtime library and utilities to automatically configure containers to leverage NVIDIA GPUs.

Minkowski Engine is an auto-differentiation library for sparse tensors. It supports all standard neural network layers such as convolution, pooling, unpooling, and broadcasting operations for sparse tensors.

CUTLASS is a collection of CUDA C++ template abstractions for implementing high-performance matrix-multiplication (GEMM) at all levels and scales within CUDA. It incorporates strategies for hierarchical decomposition and data movement similar to those used to implement cuBLAS.

CUB is a cooperative primitives for CUDA C++ kernel authors.

Tensorman is a utility for easy management of Tensorflow containers by developed by System76.Tensorman allows Tensorflow to operate in an isolated environment that is contained from the rest of the system. This virtual environment can operate independent of the base system, allowing you to use any version of Tensorflow on any version of a Linux distribution that supports the Docker runtime.

Numba is an open source, NumPy-aware optimizing compiler for Python sponsored by Anaconda, Inc. It uses the LLVM compiler project to generate machine code from Python syntax. Numba can compile a large subset of numerically-focused Python, including many NumPy functions. Additionally, Numba has support for automatic parallelization of loops, generation of GPU-accelerated code, and creation of ufuncs and C callbacks.

Chainer is a Python-based deep learning framework aiming at flexibility. It provides automatic differentiation APIs based on the define-by-run approach (dynamic computational graphs) as well as object-oriented high-level APIs to build and train neural networks. It also supports CUDA/cuDNN using CuPy for high performance training and inference.

CuPy is an implementation of NumPy-compatible multi-dimensional array on CUDA. CuPy consists of the core multi-dimensional array class, cupy.ndarray, and many functions on it. It supports a subset of numpy.ndarray interface.

CatBoost is a fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

cuDF is a GPU DataFrame library for loading, joining, aggregating, filtering, and otherwise manipulating data. cuDF provides a pandas-like API that will be familiar to data engineers & data scientists, so they can use it to easily accelerate their workflows without going into the details of CUDA programming.

cuML is a suite of libraries that implement machine learning algorithms and mathematical primitives functions that share compatible APIs with other RAPIDS projects. cuML enables data scientists, researchers, and software engineers to run traditional tabular ML tasks on GPUs without going into the details of CUDA programming. In most cases, cuML's Python API matches the API from scikit-learn.

ArrayFire is a general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.

Thrust is a C++ parallel programming library which resembles the C++ Standard Library. Thrust's high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs.

AresDB is a GPU-powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient in-memory and on disk storage management.

Arraymancer is a tensor (N-dimensional array) project in Nim. The main focus is providing a fast and ergonomic CPU, Cuda and OpenCL ndarray library on which to build a scientific computing ecosystem.

Kintinuous is a real-time dense visual SLAM system capable of producing high quality globally consistent point and mesh reconstructions over hundreds of metres in real-time with only a low-cost commodity RGB-D sensor.

GraphVite is a general graph embedding engine, dedicated to high-speed and large-scale embedding learning in various applications.

R Development

Back to the Top


R Learning Resources

R is an open source software environment for statistical computing and graphics. It compiles and runs on a wide variety of platforms such as Windows and MacOS.

An Introduction to R

Google's R Style Guide

R developer's guide to Azure

Running R at Scale on Google Compute Engine

Running R on AWS

RStudio Server Pro for AWS

Learn R by Codecademy

Learn R Programming with Online Courses and Lessons by edX

R Language Courses by Coursera

Learn R For Data Science by Udacity

R Tools

RStudio is an integrated development environment for R and Python, with a console, syntax-highlighting editor that supports direct code execution, and tools for plotting, history, debugging and workspace management.

Shiny is a newer package from RStudio that makes it incredibly easy to build interactive web applications with R.

Rmarkdown is a package helps you create dynamic analysis documents that combine code, rendered output (such as figures), and prose.

Rplugin is R Language supported plugin for the IntelliJ IDE.

Plotly is an R package for creating interactive web graphics via the open source JavaScript graphing library plotly.js.

Metaflow is a Python/R library that helps scientists and engineers build and manage real-life data science projects. Metaflow was originally developed at Netflix to boost productivity of data scientists who work on a wide variety of projects from classical statistics to state-of-the-art deep learning.

Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly, and daily seasonality, plus holiday effects. It works best with time series that have strong seasonal effects and several seasons of historical data.

LightGBM is a gradient boosting framework that uses tree based learning algorithms, used for ranking, classification and many other machine learning tasks.

Dash is a Python framework for building analytical web applications in Python, R, Julia, and Jupyter.

MLR is Machine Learning in R.

ML workspace is an all-in-one web-based IDE specialized for machine learning and data science. It is simple to deploy and gets you started within minutes to productively built ML solutions on your own machines. ML workspace is the ultimate tool for developers preloaded with a variety of popular data science libraries (Tensorflow, PyTorch, Keras, and MXnet) and dev tools (Jupyter, VS Code, and Tensorboard) perfectly configured, optimized, and integrated.

CatBoost is a fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Plumber is a tool that allows you to create a web API by merely decorating your existing R source code with special comments.

Drake is an R-focused pipeline toolkit for reproducibility and high-performance computing.

DiagrammeR is a package you can create, modify, analyze, and visualize network graph diagrams. The output can be incorporated into R Markdown documents, integrated with Shiny web apps, converted to other graph formats, or exported as image files.

Knitr is a general-purpose literate programming engine in R, with lightweight API's designed to give users full control of the output without heavy coding work.

Broom is a tool that converts statistical analysis objects from R into tidy format.

Python Development

Back to the Top


Python Learning Resources

Python is an interpreted, high-level programming language. Python is used heavily in the fields of Data Science and Machine Learning.

Python Developer’s Guide is a comprehensive resource for contributing to Python – for both new and experienced contributors. It is maintained by the same community that maintains Python.

Azure Functions Python developer guide is an introduction to developing Azure Functions using Python. The content below assumes that you've already read the Azure Functions developers guide.

CheckiO is a programming learning platform and a gamified website that teaches Python through solving code challenges and competing for the most elegant and creative solutions.

Python Institute

PCEP – Certified Entry-Level Python Programmer certification

PCAP – Certified Associate in Python Programming certification

PCPP – Certified Professional in Python Programming 1 certification

PCPP – Certified Professional in Python Programming 2

MTA: Introduction to Programming Using Python Certification

Getting Started with Python in Visual Studio Code

Google's Python Style Guide

Google's Python Education Class

Real Python

The Python Open Source Computer Science Degree by Forrest Knight

Intro to Python for Data Science

Intro to Python by W3schools

Codecademy's Python 3 course

Learn Python with Online Courses and Classes from edX

Python Courses Online from Coursera

Python Frameworks and Tools

Python Package Index (PyPI) is a repository of software for the Python programming language. PyPI helps you find and install software developed and shared by the Python community.

PyCharm is the best IDE I've ever used. With PyCharm, you can access the command line, connect to a database, create a virtual environment, and manage your version control system all in one place, saving time by avoiding constantly switching between windows.

Python Tools for Visual Studio(PTVS) is a free, open source plugin that turns Visual Studio into a Python IDE. It supports editing, browsing, IntelliSense, mixed Python/C++ debugging, remote Linux/MacOS debugging, profiling, IPython, and web development with Django and other frameworks.

Pylance is an extension that works alongside Python in Visual Studio Code to provide performant language support. Under the hood, Pylance is powered by Pyright, Microsoft's static type checking tool.

Pyright is a fast type checker meant for large Python source bases. It can run in a “watch” mode and performs fast incremental updates when files are modified.

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.

Web2py is an open-source web application framework written in Python allowing allows web developers to program dynamic web content. One web2py instance can run multiple web sites using different databases.

AWS Chalice is a framework for writing serverless apps in python. It allows you to quickly create and deploy applications that use AWS Lambda.

Tornado is a Python web framework and asynchronous networking library. Tornado uses a non-blocking network I/O, which can scale to tens of thousands of open connections.

HTTPie is a command line HTTP client that makes CLI interaction with web services as easy as possible. HTTPie is designed for testing, debugging, and generally interacting with APIs & HTTP servers.

Scrapy is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.

Sentry is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any language, in any application.

Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world.

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library.

CherryPy is a minimalist Python object-oriented HTTP web framework.

Sanic is a Python 3.6+ web server and web framework that's written to go fast.

Pyramid is a small and fast open source Python web framework. It makes real-world web application development and deployment more fun and more productive.

TurboGears is a hybrid web framework able to act both as a Full Stack framework or as a Microframework.

Falcon is a reliable, high-performance Python web framework for building large-scale app backends and microservices with support for MongoDB, Pluggable Applications and autogenerated Admin.

Neural Network Intelligence(NNI) is an open source AutoML toolkit for automate machine learning lifecycle, including Feature Engineering, Neural Architecture Search, Model Compression and Hyperparameter Tuning.

Dash is a popular Python framework for building ML & data science web apps for Python, R, Julia, and Jupyter.

Luigi is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built-in.

Locust is an easy to use, scriptable and scalable performance testing tool.

spaCy is a library for advanced Natural Language Processing in Python and Cython.

NumPy is the fundamental package needed for scientific computing with Python.

Pillow is a friendly PIL(Python Imaging Library) fork.

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history.

GraphLab Create is a Python library, backed by a C++ engine, for quickly building large-scale, high-performance machine learning models.

Pandas is a fast, powerful, and easy to use open source data structrures, data analysis and manipulation tool, built on top of the Python programming language.

PuLP is an Linear Programming modeler written in python. PuLP can generate LP files and call on use highly optimized solvers, GLPK, COIN CLP/CBC, CPLEX, and GUROBI, to solve these linear problems.

Matplotlib is a 2D plotting library for creating static, animated, and interactive visualizations in Python. Matplotlib produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms.

Scikit-Learn is a simple and efficient tool for data mining and data analysis. It is built on NumPy,SciPy, and mathplotlib.

Julia Development

Back to the Top


Julia Learning Resources

Julia is a high-level, high-performance dynamic language for technical computing. Julia programs compile to efficient native code for multiple platforms via LLVM.

JuliaHub contains over 4,000 Julia packages for use by the community.

Julia Observer

Julia Manual

JuliaLang Essentials

Julia Style Guide

Julia By Example

JuliaLang Gitter

DataFrames Tutorial using Jupyter Notebooks

Julia Academy

Julia Meetup groups

Julia on Microsoft Azure

Julia Tools, Libraries and Frameworks

JuliaPro is a free and fast way to setup Julia for individual researchers, engineers, scientists, quants, traders, economists, students and others. Julia developers can build better software quicker and easier while benefiting from Julia's unparalleled high performance. It includes 2600+ open source packages or from a curated list of 250+ JuliaPro packages. Curated packages are tested, documented and supported by Julia Computing.

Juno is a powerful, free IDE based on Atom for the Julia language.

Debugger.jl is the Julia debuggin tool.

Profile (Stdlib) is a module provides tools to help developers improve the performance of their code. When used, it takes measurements on running code, and produces output that helps you understand how much time is spent on individual line's.

Revise.jl allows you to modify code and use the changes without restarting Julia. With Revise, you can be in the middle of a session and then update packages, switch git branches, and/or edit the source code in the editor of your choice; any changes will typically be incorporated into the very next command you issue from the REPL. This can save you the overhead of restarting Julia, loading packages, and waiting for code to JIT-compile.

JuliaGPU is a Github organization created to unify the many packages for programming GPUs in Julia. With its high-level syntax and flexible compiler, Julia is well positioned to productively program hardware accelerators like GPUs without sacrificing performance.

IJulia.jl is the Julia kernel for Jupyter.

AWS.jl is a Julia interface for Amazon Web Services.

CUDA.jl is a package for the main programming interface for working with NVIDIA CUDA GPUs using Julia. It features a user-friendly array abstraction, a compiler for writing CUDA kernels in Julia, and wrappers for various CUDA libraries.

XLA.jl is a package for compiling Julia to XLA for Tensor Processing Unit(TPU).

Nanosoldier.jl is a package for running JuliaCI services on MIT's Nanosoldier cluster.

Julia for VSCode is a powerful extension for the Julia language.

JuMP.jl is a domain-specific modeling language for mathematical optimization embedded in Julia.

Optim.jl is a univariate and multivariate optimization in Julia.

RCall.jl is a package that allows you to call R functions from Julia.

JavaCall.jl is a package that allows you to call Java functions from Julia.

PyCall.jl is a package that allows you to call Python functions from Julia.

MXNet.jl is the Apache MXNet Julia package. MXNet.jl brings flexible and efficient GPU computing and state-of-art deep learning to Julia.

Knet is the Koç University deep learning framework implemented in Julia by Deniz Yuret and collaborators. It supports GPU operation and automatic differentiation using dynamic computational graphs for models defined in plain Julia.

Distributions.jl is a Julia package for probability distributions and associated functions.

DataFrames.jl is a tool for working with tabular data in Julia.

Flux.jl is an elegant approach to machine learning. It's a 100% pure-Julia stack, and provides lightweight abstractions on top of Julia's native GPU and AD support.

IRTools.jl is a simple and flexible IR format, expressive enough to work with both lowered and typed Julia code, as well as external IRs.

Cassette.jl is a Julia package that provides a mechanism for dynamically injecting code transformation passes into Julia’s just-in-time (JIT) compilation cycle, enabling post hoc analysis and modification of "Cassette-unaware" Julia programs without requiring manual source annotation or refactoring of the target code.

Contribute

  • If would you like to contribute to this guide simply make a Pull Request.

License

Back to the Top

Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.