Python in Scientific Computing
|
|
- Bathsheba Garrison
- 6 years ago
- Views:
Transcription
1 Jussi Enkovaara import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Python in Scientific Computing June 10, 2014 Scientific computing in practice Aalto University default_bfactor = 0.0 default_occupancy = 1.0 default_segid = '' # default B-factor # default occupancy level # empty segment ID class EOF(Exception): def init (self): pass class FileCrawler: """ Crawl through a file reading back and forth without loading anything to memory. """ def init (self, filename): try: self. fp = open(filename) except IOError: raise ValueError, "Couldn't open file '%s' for reading." % filename self.tell = self. fp.tell self.seek = self. fp.seek def prevline(self): try: self.prev()
2 All material (C) 2014 by the authors. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License,
3 Agenda 9:00-9:45 NumPy fast array interface to Python 9:45-10:30 Exercises 10:30-10:45 Break 10:45-11:15 NumPy (continued) 11:15-12:15 Exercises 12:15-13:00 Lunch break 13:00-13:30 Matplotlib-package for visualization 13:30-14:00 Exercises 14:00-14:30 Scipy-package for scientific computing 14:30:15:00 Exercises 15:00-15:15 Break 15:15-15:45 Parallel programming with mpi4py 15:45-17:00 Exercises
4
5 NUMPY
6
7 Numpy fast array interface Standard Python is not well suitable for numerical computations lists are very flexible but also slow to process in numerical computations Numpy adds a new array data type static, multidimensional fast processing of arrays some linear algebra, random numbers Numpy arrays All elements of an array have the same type Array can have multiple dimensions The number of elements in the array is fixed, shape can be changed Python list vs. NumPy array Creating numpy arrays Python list Memory layout NumPy array Memory layout From a list: import numpy as np a = np.array((1, 2, 3, 4), float) a array([ 1., 2., 3., 4.]) list1 = [[1, 2, 3], [4,5,6]] mat = np.array(list1, complex) mat array([[ 1.+0.j, 2.+0.j, 3.+0.j], [ 4.+0.j, 5.+0.j, 6.+0.j]]) mat.shape (2, 3) mat.size 6 Creating numpy arrays More ways for creating arrays: import numpy as np a = np.arange(10) a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) b = np.linspace(-4.5, 4.5, 5) b array([-4.5, -2.25, 0., 2.25, 4.5 ]) c = np.zeros((4, 6), float) c.shape (4, 6) d = np.ones((2, 4)) d array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) Simple indexing: Slicing: Indexing and slicing arrays mat = np.array([[1, 2, 3], [4, 5, 6]]) mat[0,2] 3 mat[1,-2] 5 a = np.arange(5) a[2:] array([2, 3, 4]) a[:-1] array([0, 1, 2, 3]) a[1:3] = -1 a array([0, -1, -1, 3, 4]) Indexing and slicing arrays Slicing is possible over all dimensions: a = np.arange(10) a[1:7:2] array([1, 3, 5]) a = np.zeros((4, 4)) a[1:3, 1:3] = 2.0 a array([[ 0., 0., 0., 0.], [ 0., 2., 2., 0.], [ 0., 2., 2., 0.], [ 0., 0., 0., 0.]]) Views and copies of arrays Simple assignment creates references to arrays Slicing creates views to the arrays Use copy() for real copying of arrays example.py a = np.arange(10) b = a # reference, changing values in b changes a b = a.copy() # true copy c = a[1:4] # view, changing c changes elements [1:4] of a c = a[1:4].copy() # true copy of subarray
8 Array manipulation reshape : change the shape of array mat = np.array([[1, 2, 3], [4, 5, 6]]) mat array([[1, 2, 3], [4, 5, 6]]) mat.reshape(3,2) array([[1, 2], [3, 4], [5, 6]]) ravel : flatten array to 1-d mat.ravel() array([1, 2, 3, 4, 5, 6]) Array manipulation concatenate : join arrays together mat1 = np.array([[1, 2, 3], [4, 5, 6]]) mat2 = np.array([[7, 8, 9], [10, 11, 12]]) np.concatenate((mat1, mat2)) array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) np.concatenate((mat1, mat2), axis=1) array([[ 1, 2, 3, 7, 8, 9], [ 4, 5, 6, 10, 11, 12]]) split : split array to N pieces np.split(mat1, 3, axis=1) [array([[1], [4]]), array([[2], [5]]), array([[3], [6]])] Array operations Most operations for numpy arrays are done elementwise +, -, *, /, ** a = np.array([1.0, 2.0, 3.0]) b = 2.0 a * b array([ 2., 4., 6.]) a + b array([ 3., 4., 5.]) a * a array([ 1., 4., 9.]) Array operations Numpy has special functions which can work with array arguments sin, cos, exp, sqrt, log,... import numpy, math a = numpy.linspace(-math.pi, math.pi, 8) a array([ , , , , , , , ]) numpy.sin(a) array([ e-16, e-01, e-01, e-01, e-01, e-01, e-01, e-16]) math.sin(a) Traceback (most recent call last): File "<stdin>", line 1, in? TypeError: only length-1 arrays can be converted to Python scalars Vectorized operations for loops in Python are slow Use vectorized operations when possible Example: difference example.py # brute force using a for loop arr = np.arange(1000) dif = np.zeros(999, int) for i in range(1, len(arr)): dif[i-1] = arr[i] - arr[i-1] # vectorized operation arr = np.arange(1000) dif = arr[1:] - arr[:-1] for loop is ~80 times slower! Broadcasting If array shapes are different, the smaller array may be broadcasted into a larger shape from numpy import array a = array([[1,2],[3,4],[5,6]], float) a array([[ 1., 2.], [ 3., 4.], [ 5., 6.]]) b = array([[7,11]], float) b array([[ 7., 11.]]) a * b array([[ 7., 22.], [ 21., 44.], [ 35., 66.]]) Advanced indexing Numpy arrays can be indexed also with other arrays (integer or boolean) x = np.arange(10,1,-1) x array([10, 9, 8, 7, 6, 5, 4, 3, 2]) x[np.array([3, 3, 1, 8])] array([7, 7, 9, 2]) Boolean mask arrays m = x > 7 m array([ True, True, True, False, False,... x[m] array([10, 9, 8]) Advanced indexing creates copies of arrays Masked arrays Sometimes datasets contain invalid data (faulty measurement, problem in simulation) Masked arrays provide a way to perform array operations neglecting invalid data Masked array support is provided by numpy.ma module
9 Masked arrays Masked arrays can be created by combining a regular numpy array and a boolean mask import numpy.ma as ma x = np.array([1, 2, 3, -1, 5]) m = x < 0 mx = ma.masked_array(x, mask=m) mx masked_array(data = [ ], mask = [False False False True False], fill_value = ) x.mean() 2.0 mx.mean() 2.75 I/O with Numpy Numpy provides functions for reading data from file and for writing data into the files Simple text files numpy.loadtxt numpy.savetxt Data in regular column layout Can deal with comments and different column delimiters Random numbers The module numpy.random provides several functions for constructing random arrays random: uniform random numbers normal: normal distribution poisson: Poisson distribution... import numpy.random as rnd rnd.random((2,2)) array([[ , ], [ , ]]) rnd.poisson(size=(2,2)) Polynomials Polynomial is defined by array of coefficients p p(x, N) = p[0] x N-1 + p[1] x N p[n-1] Least square fitting: numpy.polyfit Evaluating polynomials: numpy.polyval Roots of polynomial: numpy.roots... x = np.linspace(-4, 4, 7) y = x**2 + rnd.random(x.shape) p = np.polyfit(x, y, 2) p array([ , , ]) Linear algebra Numpy can calculate matrix and vector products efficiently: dot, vdot,... Eigenproblems: linalg.eig, linalg.eigvals, Linear systems and matrix inversion: linalg.solve, linalg.inv A = np.array(((2, 1), (1, 3))) B = np.array(((-2, 4.2), (4.2, 6))) C = np.dot(a, B) b = np.array((1, 2)) np.linalg.solve(c, b) # solve C x = b array([ , ]) Matrix multiplication C = A * B matrix dimension 200 pure python: 5.30 s naive C: 0.09 s numpy.dot: 0.01 s Numpy performance Summary Numpy provides a static array data structure Multidimensional arrays Fast mathematical operations for arrays Arrays can be broadcasted into same shapes Tools for linear algebra and random numbers
10
11 MATPLOTLIB
12
13 Matplotlib 2D plotting library for python Can be used in scripts and in interactive shell Publication quality in various hardcopy formats Easy things easy, hard things possible Some 3D functionality Matplotlib interfaces Simple command style functions similar to Matlab plot.py import pylab as pl... pl.plot(x, y) Powerful object oriented API for full control of plotting Basic concepts Figure: the main container of a plot Axes: the plotting area, a figure can contain multiple Axes graphical objects: lines, rectangles, text Command style functions are used for creating and manipulating figures, axes, lines,... The command style interface is stateful: track is kept about current figure and plotting area Simple plot plot : create a simple plot. Figure and axes are created if needed Multiple subplots Histograms subplot : create multiple axes in the figure and switch between subplots hist : create histogram Latex can be used with matplotlib Bar and pie charts 3D plots bar : bar charts pie : pie charts 3 D axes is created with Axes3D from the mpl_toolkits.mplot3d module
14 Summary of basic functions Simple plot: plot Multiple plots: subplot Histograms: hist Bar charts: bar Pie charts: pie Switch plotting on top of existing figure: hold Contour plots: contour, contourf Summary Matplotlib provides a simple command style interface for creating publication quality figures Interactive plotting and different output formats (.png,.pdf,.eps) Simple plots, multiplot figures, decorations Possible to use Latex in text
15 SCIPY
16
17 Scipy Scientific tools for Python Library overview Scipy is a Python package containing several tools for scientific computing Modules for: statistics, optimization, integration, interpolation linear algebra, Fourier transforms, signal and image processing ODE solvers, special functions... Vast package, reference guide is currently 975 pages Scipy is built on top of Numpy Clustering package (scipy.cluster) Constants (scipy.constants) Fourier transforms (scipy.fftpack) Integration and ODEs (scipy.integrate) Interpolation (scipy.interpolate) Input and output (scipy.io) Linear algebra (scipy.linalg) Maximum entropy models (scipy.maxentropy) Miscellaneous routines (scipy.misc) Multi-dimensional image processing (scipy.ndimage) Orthogonal distance regression (scipy.odr) Optimization and root finding (scipy.optimize) Signal processing (scipy.signal) Sparse matrices (scipy.sparse) Sparse linear algebra (scipy.sparse.linalg) Spatial algorithms and data structures (scipy.spatial) Special functions (scipy.special) Statistical functions (scipy.stats) Image Array Manipulation and Convolution (scipy.stsci) C/C++ integration (scipy.weave) Integration Routines for numerical integration single, double and triple integrals Function to integrate can be given by function object or by fixed samples integrate.py from scipy.integrate import simps, quad, inf x = np.linspace(0, 1, 20) y = np.exp(-x) int1 = simps(y, x) # integrate function given by samples def f(x): return exp(-x) Optimization Several classical optimization algorithms Quasi-Newton type optimizations Least squares fitting Simulated annealing General purpose root finding... from scipy.optimize import fmin int2 = quad(f, 0, 1) # integrate function object int3 = quad(f, 0, inf) # integrate up to infinity Special functions Scipy contains huge set of special functions Bessel functions Legendre functions Gamma functions... from scipy.special import jv, gamma Linear algebra Wider set of linear algebra operations than in Numpy decompositions, matrix exponentials Routines also for sparse matrices storage formats iterative algorithms sparse.py import numpy as np from scipy.sparse.linalg import LinearOperator, cg # "Sparse" matrix-vector product def mv(v): return np.array([ 2*v[0], 3*v[1]]) A = LinearOperator( (2,2), matvec=mv, dtype=float ) b = np.array((4.0, 1.0)) x = cg(a, b) # Solve linear equation Ax = b with conjugate gradient Summary Scipy is vast package of tools for scientific computing Uses lots of NumPy in the background Numerical integration, optimization, special functions, linear algebra,... Look Scipy documentation for finding tools for your needs!
18
19 PARALLEL PROGRAMMING WITH PYTHON USING MPI4PY
20
21 Outline Brief introduction to message passing interface (MPI) Python interface to MPI mpi4py Performance considerations Message passing interface MPI is an application programming interface (API) for communication between separate processes The most widely used approach for distributed parallel computing MPI programs are portable and scalable the same program can run on different types of computers, from PC's to supercomputers MPI is flexible and comprehensive large (over 120 procedures) concise (often only 6 procedures are needed) MPI standard defines C and Fortran interfaces mpi4py provides (an unofficial) Python interface Execution model in MPI Parallel program is launched as set of independent, identical processes Parallel program Process 1 Process 2... Process N All the processes contain the same program code and instructions Processes can reside in different nodes or even in different computers The way to launch parallel program is implementation dependent mpirun, mpiexec, aprun, poe,... When using Python, one launches N Python interpreters mpirun -np 32 python parallel_script.py MPI Concepts rank: id number given to process it is possible to query for rank processes can perform different tasks based on their rank mpi.py if (rank == 0): # do something elif (rank == 1): # do something else else: # all other processes do something different MPI Concepts Communicator: group containing process in mpi4py the basic object whose methods are called MPI_COMM_WORLD contains all the process (MPI.COMM_WORLD in mpi4py) Data model All variables and data structures are local to the process Processes can exchange data by sending and receiving messages Process 1 (rank 0) a = 1.0 b = 2.0 Process 2 (rank 1) a = -1.0 b = -2.0 MPI messages Process N (rank N-1) a = 6.0 b = Using mpi4py Basic methods of communicator object Get_size() Number of processes in communicator Get_rank() rank of this process mpi.py from mpi4py import MPI comm = MPI.COMM_WORLD # communicator object containing all processes size = comm.get_size() rank = comm.get_rank() Sending and receiving data Sending and receiving a dictionary mpi.py from mpi4py import MPI comm = MPI.COMM_WORLD # communicator object containing all processes rank = comm.get_rank() if rank == 0: data = {'a': 7, 'b': 3.14} comm.send(data, dest=1, tag=11) elif rank == 1: data = comm.recv(source=0, tag=11) print "I am rank %d in group of %d processes" % (rank, size)
22 Sending and receiving data Arbitrary Python objects can be communicated with the send and receive methods of communicator send(data, dest, tag) data Python object to send dest destination rank tag id given to the message recv(source, tag) source source rank tag id given to the message data is provided as return value Destination and source ranks as well as tags have to match Communicating NumPy arrays Arbitrary Python objects are converted to byte streams when sending Byte stream is converted back to Python object when receiving Conversions give overhead to communication (Contiguous) NumPy arrays can be communicated with very little overhead with upper case methods: Send(data, dest, tag) Recv(data, source, tag) Note the difference in receiving: the data array has to exist in the time of call Communicating NumPy arrays Sending and receiving a NumPy array mpi.py from mpi4py import MPI Ping-pong test mpi4py performance comm = MPI.COMM_WORLD rank = comm.get_rank() if rank == 0: data = numpy.arange(100, dtype=numpy.float) comm.send(data, dest=1, tag=13) elif rank == 1: data = numpy.empty(100, dtype=numpy.float) comm.recv(data, source=0, tag=13) Note the difference between upper/lower case! send/recv: general Python objects, slow Send/Recv: continuous arrays, fast Summary mpi4py provides Python interface to MPI MPI calls via communicator object Possible to communicate arbitrary Python objects NumPy arrays can be communicated with nearly same speed as from C/Fortran
Numpy fast array interface
NUMPY Numpy fast array interface Standard Python is not well suitable for numerical computations lists are very flexible but also slow to process in numerical computations Numpy adds a new array data type
More informationNumPy. Arno Proeme, ARCHER CSE Team Attributed to Jussi Enkovaara & Martti Louhivuori, CSC Helsinki
NumPy Arno Proeme, ARCHER CSE Team aproeme@epcc.ed.ac.uk Attributed to Jussi Enkovaara & Martti Louhivuori, CSC Helsinki Reusing this material This work is licensed under a Creative Commons Attribution-
More informationJune 10, 2014 Scientific computing in practice Aalto University
Jussi Enkovaara import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Exercises for Python in Scientific Computing June 10, 2014 Scientific
More informationSebastian von Alfthan Jussi Enkovaara Martti Louhivuori. Python in High-performance Computing
Sebastian von Alfthan Jussi Enkovaara Martti Louhivuori import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Python in High-performance
More informationIntroduction to Programming for Scientists
Introduction to Programming for Scientists Lecture 7 Prof. Steven Ludtke N410, sludtke@bcm.edu 1 Homework Review import os, sys from PIL import Image import ImageFilter directory='g:/pictures' files=os.listdir(directory)
More informationJussi Enkovaara Martti Louhivuori. Python in High-Performance Computing. CSC IT Center for Science Ltd, Finland January 29-31, 2018
Jussi Enkovaara Martti Louhivuori Python in High-Performance Computing CSC IT Center for Science Ltd, Finland January 29-31, 2018 import sys, os try: from Bio.PDB import PDBParser biopython_installed =
More informationExercises for Python in HPC
Sebastian von Alfthan Jussi Enkovaara Martti Louhivuori import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Exercises for Python
More informationLECTURE 22. Numerical and Scientific Packages
LECTURE 22 Numerical and Scientific Packages NUMERIC AND SCIENTIFIC APPLICATIONS As you might expect, there are a number of third-party packages available for numerical and scientific computing that extend
More informationExercises for Python in HPC
Jussi Enkovaara Martti Louhivuori import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Exercises for Python in HPC April 16-18, 2013
More informationLECTURE 19. Numerical and Scientific Packages
LECTURE 19 Numerical and Scientific Packages NUMERICAL AND SCIENTIFIC APPLICATIONS As you might expect, there are a number of third-party packages available for numerical and scientific computing that
More informationPython in High-Performance Computing
Jussi Enkovaara Martti Louhivuori Python in High-Performance Computing CSC IT Center for Science Ltd, Finland March 1-3, 2017 import sys, os try: from Bio.PDB import PDBParser biopython_installed = True
More informationIntroduction to Scientific Computing with Python, part two.
Introduction to Scientific Computing with Python, part two. M. Emmett Department of Mathematics University of North Carolina at Chapel Hill June 20 2012 The Zen of Python zen of python... fire up python
More informationNumPy and SciPy. Shawn T. Brown Director of Public Health Applications Pittsburgh Supercomputing Center Pittsburgh Supercomputing Center
NumPy and SciPy Shawn T. Brown Director of Public Health Applications Pittsburgh Supercomputing Center 2012 Pittsburgh Supercomputing Center What are NumPy and SciPy NumPy and SciPy are open-source add-on
More informationThe SciPy Stack. Jay Summet
The SciPy Stack Jay Summet May 1, 2014 Outline Numpy - Arrays, Linear Algebra, Vector Ops MatPlotLib - Data Plotting SciPy - Optimization, Scientific functions TITLE OF PRESENTATION 2 What is Numpy? 3rd
More informationPart VI. Scientific Computing in Python. Alfredo Parra : Scripting with Python Compact Max-PlanckMarch 6-10,
Part VI Scientific Computing in Python Compact Course @ Max-PlanckMarch 6-10, 2017 63 Doing maths in Python Standard sequence types (list, tuple,... ) Can be used as arrays Can contain different types
More informationCME 193: Introduction to Scientific Python Lecture 5: Numpy, Scipy, Matplotlib
CME 193: Introduction to Scientific Python Lecture 5: Numpy, Scipy, Matplotlib Sven Schmit stanford.edu/~schmit/cme193 5: Numpy, Scipy, Matplotlib 5-1 Contents Second part of course Numpy Scipy Matplotlib
More informationCosmology with python: Beginner to Advanced in one week. Tiago Batalha de Castro
Cosmology with python: Beginner to Advanced in one week Tiago Batalha de Castro What is Python? (From python.org) Python is an interpreted, object-oriented, high-level programming language with dynamic
More informationCME 193: Introduction to Scientific Python Lecture 6: Numpy, Scipy, Matplotlib
CME 193: Introduction to Scientific Python Lecture 6: Numpy, Scipy, Matplotlib Nolan Skochdopole stanford.edu/class/cme193 6: Numpy, Scipy, Matplotlib 6-1 Contents Homeworks and Project Numpy Scipy Matplotlib
More informationNumerical Calculations
Fundamentals of Programming (Python) Numerical Calculations Sina Sajadmanesh Sharif University of Technology Some slides have been adapted from Scipy Lecture Notes at http://www.scipy-lectures.org/ Outline
More informationmpi4py HPC Python R. Todd Evans January 23, 2015
mpi4py HPC Python R. Todd Evans rtevans@tacc.utexas.edu January 23, 2015 What is MPI Message Passing Interface Most useful on distributed memory machines Many implementations, interfaces in C/C++/Fortran
More informationProgramming for Engineers in Python
Programming for Engineers in Python Autumn 2016-17 Lecture 11: NumPy & SciPy Introduction, Plotting and Data Analysis 1 Today s Plan Introduction to NumPy & SciPy Plotting Data Analysis 2 NumPy and SciPy
More informationScientific Programming. Lecture A08 Numpy
Scientific Programming Lecture A08 Alberto Montresor Università di Trento 2018/10/25 Acknowledgments: Stefano Teso, Documentation http://disi.unitn.it/~teso/courses/sciprog/python_appendices.html https://docs.scipy.org/doc/numpy-1.13.0/reference/
More informationExercise: Introduction to NumPy arrays
Exercise: Introduction to NumPy arrays Aim: Introduce basic NumPy array creation and indexing Issues covered: Importing NumPy Creating an array from a list Creating arrays of zeros or ones Understanding
More informationNumPy. Daniël de Kok. May 4, 2017
NumPy Daniël de Kok May 4, 2017 Introduction Today Today s lecture is about the NumPy linear algebra library for Python. Today you will learn: How to create NumPy arrays, which store vectors, matrices,
More informationNumPy quick reference
John W. Shipman 2016-05-30 12:28 Abstract A guide to the more common functions of NumPy, a numerical computation module for the Python programming language. This publication is available in Web form1 and
More informationDay 15: Science Code in Python
Day 15: Science Code in Python 1 Turn In Homework 2 Homework Review 3 Science Code in Python? 4 Custom Code vs. Off-the-Shelf Trade-offs Costs (your time vs. your $$$) Your time (coding vs. learning) Control
More informationJussi Enkovaara Martti Louhivuori. Python in High-Performance Computing. CSC IT Center for Science Ltd, Finland January 29-31, 2018
Jussi Enkovaara Martti Louhivuori Python in High-Performance Computing CSC IT Center for Science Ltd, Finland January 29-31, 2018 import sys, os try: from Bio.PDB import PDBParser biopython_installed =
More informationPython Crash Course Numpy, Scipy, Matplotlib
Python Crash Course Numpy, Scipy, Matplotlib That is what learning is. You suddenly understand something you ve understood all your life, but in a new way. Doris Lessing Steffen Brinkmann Max-Planck-Institut
More informationSession 12: Introduction to MPI (4PY) October 9 th 2018, Alexander Peyser (Lena Oden)
Session 12: Introduction to MPI (4PY) October 9 th 2018, Alexander Peyser (Lena Oden) Overview Introduction Basic concepts mpirun Hello world Wrapping numpy arrays Common Pitfalls Introduction MPI: de
More informationDSC 201: Data Analysis & Visualization
DSC 201: Data Analysis & Visualization Arrays Dr. David Koop Class Example class Rectangle: def init (self, x, y, w, h): self.x = x self.y = y self.w = w self.h = h def set_corner(self, x, y): self.x =
More informationMO101: Python for Engineering Vladimir Paun ENSTA ParisTech
I MO101: Python for Engineering Vladimir Paun ENSTA ParisTech License CC BY-NC-SA 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Introduction to Python Introduction About Python Python itself
More informationSession 12: Introduction to MPI (4PY) October 10 th 2017, Lena Oden
Session 12: Introduction to MPI (4PY) October 10 th 2017, Lena Oden Overview Introduction Basic concepts mpirun Hello world Wrapping numpy arrays Common Pittfals Introduction MPI de facto standard for
More informationPython for Scientists
High level programming language with an emphasis on easy to read and easy to write code Includes an extensive standard library We use version 3 History: Exists since 1991 Python 3: December 2008 General
More informationWhy NumPy / SciPy? NumPy / SciPy / Matplotlib. A Tour of NumPy. Initializing a NumPy array
NumPy / SciPy / Matplotlib NumPy is an extension to Python adding support for arrays and matrices, along with a large library of high-level mathematical functions to operate on them. SciPy is a library
More informationPart VI. Scientific Computing in Python. Tobias Neckel: Scripting with Bash and Python Compact Max-Planck, February 16-26,
Part VI Scientific Computing in Python Compact Course @ Max-Planck, February 16-26, 2015 81 More on Maths Module math Constants pi and e Functions that operate on int and float All return values float
More informationNumPy and SciPy. Lab Objective: Create and manipulate NumPy arrays and learn features available in NumPy and SciPy.
Lab 2 NumPy and SciPy Lab Objective: Create and manipulate NumPy arrays and learn features available in NumPy and SciPy. Introduction NumPy and SciPy 1 are the two Python libraries most used for scientific
More informationEffective Programming Practices for Economists. 10. Some scientific tools for Python
Effective Programming Practices for Economists 10. Some scientific tools for Python Hans-Martin von Gaudecker Department of Economics, Universität Bonn A NumPy primer The main NumPy object is the homogeneous
More informationIntro to scientific Python in 45'
Intro to scientific Python in 45' ... or Python for Matlab Users Getting help at the center Ask your questions on the martinos-python mailing list: martinos-python@nmr.mgh.harvard.edu you can at subscribe:
More informationNumPy is suited to many applications Image processing Signal processing Linear algebra A plethora of others
Introduction to NumPy What is NumPy NumPy is a Python C extension library for array-oriented computing Efficient In-memory Contiguous (or Strided) Homogeneous (but types can be algebraic) NumPy is suited
More informationSunpy Python for Solar Physics Juan Carlos Martínez Oliveros
Sunpy Python for Solar Physics Juan Carlos Martínez Oliveros In the beginning (ENIAC) Evolution Evolution Evolution Introduction The SunPy project is an effort to create an opensource software library
More informationIAP Python - Lecture 4
IAP Python - Lecture 4 Andrew Farrell MIT SIPB January 13, 2011 NumPy, SciPy, and matplotlib are a collection of modules that together are trying to create the functionality of MATLAB in Python. Andrew
More informationHandling arrays in Python (numpy)
Handling arrays in Python (numpy) Thanks to all contributors: Alison Pamment, Sam Pepler, Ag Stephens, Stephen Pascoe, Anabelle Guillory, Graham Parton, Esther Conway, Wendy Garland, Alan Iwi and Matt
More informationPYTHON NUMPY TUTORIAL CIS 581
PYTHON NUMPY TUTORIAL CIS 581 VARIABLES AND SPYDER WORKSPACE Spyder is a Python IDE that s a part of the Anaconda distribution. Spyder has a Python console useful to run commands quickly and variables
More informationMPI: the Message Passing Interface
15 Parallel Programming with MPI Lab Objective: In the world of parallel computing, MPI is the most widespread and standardized message passing library. As such, it is used in the majority of parallel
More informationPHY224 Practical Physics I. Lecture 2
PHY224 Practical Physics I Python Review Lecture 2 Sept. 19 20 20, 2013 Summary Functions and Modules Graphs (plotting with Pylab) Scipy packages References M H. Goldwasser, D. Letscher: Object oriented
More informationIntroduction to Python
Jussi Enkovaara Jyry Suvilehto Introduction to Python September 18-19, 2017 CSC IT Center for Science Ltd, Finland import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError:
More informationIntroduction to Python
Jussi Enkovaara Jyry Suvilehto Introduction to Python January 16-17, 2017 CSC IT Center for Science Ltd, Finland import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError:
More informationCollective Communication
Lab 14 Collective Communication Lab Objective: Learn how to use collective communication to increase the efficiency of parallel programs In the lab on the Trapezoidal Rule [Lab??], we worked to increase
More informationPHY224 Practical Physics I. Lecture 2
PHY224 Practical Physics I Python Review Lecture 2 Sept. 15 16 16, 2014 Summary Functions and Modules Graphs (plotting with Pylab) Scipy packages References M H. Goldwasser, D. Letscher: Object oriented
More informationIntroduction to Machine Learning. Useful tools: Python, NumPy, scikit-learn
Introduction to Machine Learning Useful tools: Python, NumPy, scikit-learn Antonio Sutera and Jean-Michel Begon September 29, 2016 2 / 37 How to install Python? Download and use the Anaconda python distribution
More informationAn introduction to scientific programming with. Session 3: Scientific Python
An introduction to scientific programming with Session 3: Scientific Python A Python program relevant to your research put course material into practice opportunity to become familiar with Python requirement
More informationPython for Data Analysis
Python for Data Analysis Wes McKinney O'REILLY 8 Beijing Cambridge Farnham Kb'ln Sebastopol Tokyo Table of Contents Preface xi 1. Preliminaries " 1 What Is This Book About? 1 Why Python for Data Analysis?
More informationHW0 v3. October 2, CSE 252A Computer Vision I Fall Assignment 0
HW0 v3 October 2, 2018 1 CSE 252A Computer Vision I Fall 2018 - Assignment 0 1.0.1 Instructor: David Kriegman 1.0.2 Assignment Published On: Tuesday, October 2, 2018 1.0.3 Due On: Tuesday, October 9, 2018
More informationScientific Computing with Python. Quick Introduction
Scientific Computing with Python Quick Introduction Libraries and APIs A library is a collection of implementations of behavior (definitions) An Application Programming Interface (API) describes that behavior
More informationSciPy. scipy [www.scipy.org and links on course web page] scipy arrays
SciPy scipy [www.scipy.org and links on course web page] - scipy is a collection of many useful numerical algorithms (numpy is the array core) - Python wrappers around compiled libraries and subroutines
More information(DRAFT) PYTHON FUNDAMENTALS II: NUMPY & MATPLOTLIB
(DRAFT) PYTHON FUNDAMENTALS II: NUMPY & MATPLOTLIB TROY P. KLING Contents 1. Importing Libraries 1 2. Introduction to numpy 2 3. Introduction to matplotlib 5 4. Image Processing 8 5. The Mandelbrot Set
More informationPython Tutorial. CS/CME/BioE/Biophys/BMI 279 Oct. 17, 2017 Rishi Bedi
Python Tutorial CS/CME/BioE/Biophys/BMI 279 Oct. 17, 2017 Rishi Bedi 1 Python2 vs Python3 Python syntax Data structures Functions Debugging Classes The NumPy Library Outline 2 Many examples adapted from
More informationScientific Computing with Python and CUDA
Scientific Computing with Python and CUDA Stefan Reiterer High Performance Computing Seminar, January 17 2011 Stefan Reiterer () Scientific Computing with Python and CUDA HPC Seminar 1 / 55 Inhalt 1 A
More informationNumPy. Computational Physics. NumPy
NumPy Computational Physics NumPy Outline Some Leftovers Get people on line! Write a function / Write a script NumPy NumPy Arrays; dexing; Iterating Creating Arrays Basic Operations Copying Linear Algebra
More informationNumPy Primer. An introduction to numeric computing in Python
NumPy Primer An introduction to numeric computing in Python What is NumPy? Numpy, SciPy and Matplotlib: MATLAB-like functionality for Python Numpy: Typed multi-dimensional arrays Fast numerical computation
More informationUser-Defined Function
ENGR 102-213 (Socolofsky) Week 11 Python scripts In the lecture this week, we are continuing to learn powerful things that can be done with userdefined functions. In several of the examples, we consider
More informationAn introduction to scientific programming with. Session 3: Scientific Python
An introduction to scientific programming with Session 3: Scientific Python A Python program relevant to your research put course material into practice opportunity to become familiar with Python requirement
More informationIntroduction to Data Science. Introduction to Data Science with Python. Python Basics: Basic Syntax, Data Structures. Python Concepts (Core)
Introduction to Data Science What is Analytics and Data Science? Overview of Data Science and Analytics Why Analytics is is becoming popular now? Application of Analytics in business Analytics Vs Data
More informationMLCV 182: Practical session 1 Ron Shapira Weber Computer Science, Ben-Gurion University
MLCV 182: Practical session 1 Ron Shapira Weber Computer Science, Ben-Gurion University Getting Started There are two different versions of Python being supported at the moment, 2.7 and 3.6. For compatibility
More informationDiffusion processes in complex networks
Diffusion processes in complex networks Digression - parallel computing in Python Janusz Szwabiński Outlook: Multiprocessing Parallel computing in IPython MPI for Python Cython and OpenMP Python and OpenCL
More informationChumpy Documentation. Release 1.0. Matthew Loper
Chumpy Documentation Release 1.0 Matthew Loper July 02, 2014 CONTENTS 1 What does Chumpy do? 1 1.1 Easy problem construction........................................ 1 1.2 Easy access to derivatives........................................
More informationENGR 102 Engineering Lab I - Computation
ENGR 102 Engineering Lab I - Computation Learning Objectives by Week 1 ENGR 102 Engineering Lab I Computation 2 Credits 2. Introduction to the design and development of computer applications for engineers;
More informationpython 01 September 16, 2016
python 01 September 16, 2016 1 Introduction to Python adapted from Steve Phelps lectures - (http://sphelps.net) 2 Python is interpreted Python is an interpreted language (Java and C are not). In [1]: 7
More informationCME 193: Introduction to Scientific Python Lecture 5: Object Oriented Programming
CME 193: Introduction to Scientific Python Lecture 5: Object Oriented Programming Nolan Skochdopole stanford.edu/class/cme193 5: Object Oriented Programming 5-1 Contents Classes Numpy Exercises 5: Object
More informationDerek Bridge School of Computer Science and Information Technology University College Cork
CS4618: rtificial Intelligence I Vectors and Matrices Derek Bridge School of Computer Science and Information Technology University College Cork Initialization In [1]: %load_ext autoreload %autoreload
More informationComputational Physics
Computational Physics Objects : Lists & Arrays Prof. Paul Eugenio Department of Physics Florida State University Jan 24, 2019 http://hadron.physics.fsu.edu/~eugenio/comphy/ Announcements Read chapter 3
More informationAn Introduction to Parallel Programming using MPI
Lab 13 An Introduction to Parallel Programming using MPI Lab Objective: Learn the basics of parallel computing on distributed memory machines using MPI for Python Why Parallel Computing? Over the past
More informationNumerical Methods. Centre for Mathematical Sciences Lund University. Spring 2015
Numerical Methods Claus Führer Alexandros Sopasakis Centre for Mathematical Sciences Lund University Spring 2015 Preface These notes serve as a skeleton for the course. They document together with the
More informationTheano Tutorials. Ian Goodfellow
Theano Tutorials Ian Goodfellow Outline 1. Basic usage: How to write a theano program 2. Advanced usage: Symbolic manipulations and debugging, etc. 3A. Internals: how to add your own features 3B. Machine
More informationL3-Python-for-Statistical-Modeling
L3-Python-for-Statistical-Modeling October 16, 2015 1 Python modules for Statistics 1.1 NumPy NumPy is short for Numerical Python, is the foundational package for scientific computing in Python. It contains
More informationPython in Economics and Finance
Python in Economics and Finance Part 2 John Stachurski, ANU June 2014 Topics Data types OOP Iteration Functions NumPy / SciPy Matplotlib Data Types We have already met several native Python data types»>
More informationProblem Based Learning 2018
Problem Based Learning 2018 Introduction to Machine Learning with Python L. Richter Department of Computer Science Technische Universität München Monday, Jun 25th L. Richter PBL 18 1 / 21 Overview 1 2
More informationCourse May 18, Advanced Computational Physics. Course Hartmut Ruhl, LMU, Munich. People involved. SP in Python: 3 basic points
May 18, 2017 3 I/O 3 I/O 3 I/O 3 ASC, room A 238, phone 089-21804210, email hartmut.ruhl@lmu.de Patrick Böhl, ASC, room A205, phone 089-21804640, email patrick.boehl@physik.uni-muenchen.de. I/O Scientific
More informationnumpy-scipy February 11, 2015
numpy-scipy February 11, 2015 Contents 0.1 Introduction to Scientific Programming with Python....................... 1 0.1.1 Session 4: NumPy, SciPy & matplotlib........................... 1 0.1.2 Outline:............................................
More informationIntroduction to NumPy
Lab 3 Introduction to NumPy Lab Objective: NumPy is a powerful Python package for manipulating data with multi-dimensional vectors. Its versatility and speed makes Python an ideal language for applied
More informationINTRODUCTION TO DATA SCIENCE
INTRODUCTION TO DATA SCIENCE JOHN P DICKERSON PREM SAGGAR Today! Lecture #3 9/5/2018 CMSC320 Mondays & Wednesdays 2pm 3:15pm ANNOUNCEMENTS Register on Piazza: piazza.com/umd/fall2018/cmsc320 219 have registered
More informationData Science with Python Course Catalog
Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com Table of Contents Syllabus Overview
More informationIntroductory Scientific Computing with Python
Introductory Scientific Computing with Python More plotting, lists and FOSSEE Department of Aerospace Engineering IIT Bombay SciPy India, 2015 December, 2015 FOSSEE (FOSSEE IITB) Interactive Plotting 1
More informationCSC Advanced Scientific Computing, Fall Numpy
CSC 223 - Advanced Scientific Computing, Fall 2017 Numpy Numpy Numpy (Numerical Python) provides an interface, called an array, to operate on dense data buffers. Numpy arrays are at the core of most Python
More informationAn introduction to scientific programming with. Session 2: Numerical Python and plotting
An introduction to scientific programming with Session 2: Numerical Python and plotting So far core Python language and libraries Extra features required: fast, multidimensional arrays plotting tools libraries
More informationDSC 201: Data Analysis & Visualization
DSC 201: Data Analysis & Visualization Classes & Arrays Dr. David Koop Sets Sets are like dictionaries but without any values: s = {'MA', 'RI', 'CT', 'NH'}; t = {'MA', 'NY', 'NH'} {} is an empty dictionary,
More information5 File I/O, Plotting with Matplotlib
5 File I/O, Plotting with Matplotlib Bálint Aradi Course: Scientific Programming / Wissenchaftliches Programmieren (Python) Installing some SciPy stack components We will need several Scipy components
More informationDSC 201: Data Analysis & Visualization
DSC 201: Data Analysis & Visualization Arrays and Series Dr. David Koop Exception Example def divide(mylist, x,y): newlist = [] try: z = x // y below, mid, above = \ mylist[:z], mylist[z], mylist[z+1:]
More informationAdvanced Parallel Programming
Sebastian von Alfthan Jussi Enkovaara Pekka Manninen Advanced Parallel Programming February 15-17, 2016 PRACE Advanced Training Center CSC IT Center for Science Ltd, Finland All material (C) 2011-2016
More informationDavid J. Pine. Introduction to Python for Science & Engineering
David J. Pine Introduction to Python for Science & Engineering To Alex Pine who introduced me to Python Contents Preface About the Author xi xv 1 Introduction 1 1.1 Introduction to Python for Science and
More informationPython review. 1 Python basics. References. CS 234 Naomi Nishimura
Python review CS 234 Naomi Nishimura The sections below indicate Python material, the degree to which it will be used in the course, and various resources you can use to review the material. You are not
More informationPython for Biosciences
Jussi Enkovaara Janne Ravantti Python for Biosciences December 3-4, 2018 CSC IT Center for Science Ltd, Finland import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError:
More informationChapter 5 : Informatics Practices. Class XII ( As per CBSE Board) Numpy - Array. New Syllabus Visit : python.mykvs.in for regular updates
Chapter 5 : Informatics Practices Class XII ( As per CBSE Board) Numpy - Array New Syllabus 2019-20 NumPy stands for Numerical Python.It is the core library for scientific computing in Python. It consist
More informationShort Introduction to Python Machine Learning Course Laboratory
Pattern Recognition and Applications Lab Short Introduction to Python Machine Learning Course Laboratory Battista Biggio battista.biggio@diee.unica.it Luca Didaci didaci@diee.unica.it Dept. Of Electrical
More informationNewton and Quasi-Newton Methods
Lab 17 Newton and Quasi-Newton Methods Lab Objective: Newton s method is generally useful because of its fast convergence properties. However, Newton s method requires the explicit calculation of the second
More information1 2 (3 + x 3) x 2 = 1 3 (3 + x 1 2x 3 ) 1. 3 ( 1 x 2) (3 + x(0) 3 ) = 1 2 (3 + 0) = 3. 2 (3 + x(0) 1 2x (0) ( ) = 1 ( 1 x(0) 2 ) = 1 3 ) = 1 3
6 Iterative Solvers Lab Objective: Many real-world problems of the form Ax = b have tens of thousands of parameters Solving such systems with Gaussian elimination or matrix factorizations could require
More informationPhys Techniques of Radio Astronomy Part 1: Python Programming LECTURE 3
Phys 60441 Techniques of Radio Astronomy Part 1: Python Programming LECTURE 3 Tim O Brien Room 3.214 Alan Turing Building tim.obrien@manchester.ac.uk Tuples Lists and strings are examples of sequences.
More informationImplement NN using NumPy
Implement NN using NumPy Hantao Zhang Deep Learning with Python Reading: https://www.tutorialspoint.com/numpy/ Recommendation for Using Python Install anaconda on your PC. If you already have installed
More informationBasic Beginners Introduction to plotting in Python
Basic Beginners Introduction to plotting in Python Sarah Blyth July 23, 2009 1 Introduction Welcome to a very short introduction on getting started with plotting in Python! I would highly recommend that
More informationARTIFICIAL INTELLIGENCE AND PYTHON
ARTIFICIAL INTELLIGENCE AND PYTHON DAY 1 STANLEY LIANG, LASSONDE SCHOOL OF ENGINEERING, YORK UNIVERSITY WHAT IS PYTHON An interpreted high-level programming language for general-purpose programming. Python
More information