Array Programming with Numpy
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Sagemath and Sagemathcloud
Viviane Pons Ma^ıtrede conf´erence,Universit´eParis-Sud Orsay [email protected] { @PyViv SageMath and SageMathCloud Introduction SageMath SageMath is a free open source mathematics software I Created in 2005 by William Stein. I http://www.sagemath.org/ I Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 2 / 7 SageMath Source and language I the main language of Sage is python (but there are many other source languages: cython, C, C++, fortran) I the source is distributed under the GPL licence. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 3 / 7 SageMath Sage and libraries One of the original purpose of Sage was to put together the many existent open source mathematics software programs: Atlas, GAP, GMP, Linbox, Maxima, MPFR, PARI/GP, NetworkX, NTL, Numpy/Scipy, Singular, Symmetrica,... Sage is all-inclusive: it installs all those libraries and gives you a common python-based interface to work on them. On top of it is the python / cython Sage library it-self. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 4 / 7 SageMath Sage and libraries I You can use a library explicitly: sage: n = gap(20062006) sage: type(n) <c l a s s 'sage. interfaces .gap.GapElement'> sage: n.Factors() [ 2, 17, 59, 73, 137 ] I But also, many of Sage computation are done through those libraries without necessarily telling you: sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) sage : G . g a p () Group( [ (3,4), (1,2,3)(4,5) ] ) Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 5 / 7 SageMath Development model Development model I Sage is developed by researchers for researchers: the original philosophy is to develop what you need for your research and share it with the community. -
R from a Programmer's Perspective Accompanying Manual for an R Course Held by M
DSMZ R programming course R from a programmer's perspective Accompanying manual for an R course held by M. Göker at the DSMZ, 11/05/2012 & 25/05/2012. Slightly improved version, 10/09/2012. This document is distributed under the CC BY 3.0 license. See http://creativecommons.org/licenses/by/3.0 for details. Introduction The purpose of this course is to cover aspects of R programming that are either unlikely to be covered elsewhere or likely to be surprising for programmers who have worked with other languages. The course thus tries not be comprehensive but sort of complementary to other sources of information. Also, the material needed to by compiled in short time and perhaps suffers from important omissions. For the same reason, potential participants should not expect a fully fleshed out presentation but a combination of a text-only document (this one) with example code comprising the solutions of the exercises. The topics covered include R's general features as a programming language, a recapitulation of R's type system, advanced coding of functions, error handling, the use of attributes in R, object-oriented programming in the S3 system, and constructing R packages (in this order). The expected audience comprises R users whose own code largely consists of self-written functions, as well as programmers who are fluent in other languages and have some experience with R. Interactive users of R without programming experience elsewhere are unlikely to benefit from this course because quite a few programming skills cannot be covered here but have to be presupposed. -
Getting Started with Astropy
Astropy Documentation Release 0.2.5 The Astropy Developers October 28, 2013 CONTENTS i ii Astropy Documentation, Release 0.2.5 Astropy is a community-driven package intended to contain much of the core functionality and some common tools needed for performing astronomy and astrophysics with Python. CONTENTS 1 Astropy Documentation, Release 0.2.5 2 CONTENTS Part I User Documentation 3 Astropy Documentation, Release 0.2.5 Astropy at a glance 5 Astropy Documentation, Release 0.2.5 6 CHAPTER ONE OVERVIEW Here we describe a broad overview of the Astropy project and its parts. 1.1 Astropy Project Concept The “Astropy Project” is distinct from the astropy package. The Astropy Project is a process intended to facilitate communication and interoperability of python packages/codes in astronomy and astrophysics. The project thus en- compasses the astropy core package (which provides a common framework), all “affiliated packages” (described below in Affiliated Packages), and a general community aimed at bringing resources together and not duplicating efforts. 1.2 astropy Core Package The astropy package (alternatively known as the “core” package) contains various classes, utilities, and a packaging framework intended to provide commonly-used astronomy tools. It is divided into a variety of sub-packages, which are documented in the remainder of this documentation (see User Documentation for documentation of these components). The core also provides this documentation, and a variety of utilities that simplify starting other python astron- omy/astrophysics packages. As described in the following section, these simplify the process of creating affiliated packages. 1.3 Affiliated Packages The Astropy project includes the concept of “affiliated packages.” An affiliated package is an astronomy-related python package that is not part of the astropy core source code, but has requested to be included in the Astropy project. -
Parallel Functional Programming with APL
Parallel Functional Programming, APL Lecture 1 Parallel Functional Programming with APL Martin Elsman Department of Computer Science University of Copenhagen DIKU December 19, 2016 Martin Elsman (DIKU) Parallel Functional Programming, APL Lecture 1 December 19, 2016 1 / 18 Outline 1 Outline Course Outline 2 Introduction to APL What is APL APL Implementations and Material APL Scalar Operations APL (1-Dimensional) Vector Computations Declaring APL Functions (dfns) APL Multi-Dimensional Arrays Iterations Declaring APL Operators Function Trains Examples Reading Martin Elsman (DIKU) Parallel Functional Programming, APL Lecture 1 December 19, 2016 2 / 18 Outline Course Outline Teachers Martin Elsman (ME), Ken Friis Larsen (KFL), Andrzej Filinski (AF), and Troels Henriksen (TH) Location Lectures in Small Aud, Universitetsparken 1 (UP1); Labs in Old Library, UP1 Course Description See http://kurser.ku.dk/course/ndak14009u/2016-2017 Course Outline Week 47 48 49 50 51 1–3 Mon 13–15 Intro, Futhark Parallel SNESL APL (ME) Project Futhark (ME) Haskell (AF) (ME) (KFL) Mon 15–17 Lab Lab Lab Lab Project Wed 13–15 Futhark Parallel SNESL Invited APL Project (ME) Haskell (AF) Lecture (ME) / (KFL) (John Projects Reppy) Martin Elsman (DIKU) Parallel Functional Programming, APL Lecture 1 December 19, 2016 3 / 18 Introduction to APL What is APL APL—An Ancient Array Programming Language—But Still Used! Pioneered by Ken E. Iverson in the 1960’s. E. Dijkstra: “APL is a mistake, carried through to perfection.” There are quite a few APL programmers around (e.g., HIPERFIT partners). Very concise notation for expressing array operations. Has a large set of functional, essentially parallel, multi- dimensional, second-order array combinators. -
Programming Language
Programming language A programming language is a formal language, which comprises a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms. Most programming languages consist of instructions for computers. There are programmable machines that use a set of specific instructions, rather than general programming languages. Early ones preceded the invention of the digital computer, the first probably being the automatic flute player described in the 9th century by the brothers Musa in Baghdad, during the Islamic Golden Age.[1] Since the early 1800s, programs have been used to direct the behavior of machines such as Jacquard looms, music boxes and player pianos.[2] The programs for these The source code for a simple computer program written in theC machines (such as a player piano's scrolls) did not programming language. When compiled and run, it will give the output "Hello, world!". produce different behavior in response to different inputs or conditions. Thousands of different programming languages have been created, and more are being created every year. Many programming languages are written in an imperative form (i.e., as a sequence of operations to perform) while other languages use the declarative form (i.e. the desired result is specified, not how to achieve it). The description of a programming language is usually split into the two components ofsyntax (form) and semantics (meaning). Some languages are defined by a specification document (for example, theC programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. -
RAL-TR-1998-060 Co-Array Fortran for Parallel Programming
RAL-TR-1998-060 Co-Array Fortran for parallel programming 1 by R. W. Numrich23 and J. K. Reid Abstract Co-Array Fortran, formerly known as F−− , is a small extension of Fortran 95 for parallel processing. A Co-Array Fortran program is interpreted as if it were replicated a number of times and all copies were executed asynchronously. Each copy has its own set of data objects and is termed an image. The array syntax of Fortran 95 is extended with additional trailing subscripts in square brackets to give a clear and straightforward representation of any access to data that is spread across images. References without square brackets are to local data, so code that can run independently is uncluttered. Only where there are square brackets, or where there is a procedure call and the procedure contains square brackets, is communication between images involved. There are intrinsic procedures to synchronize images, return the number of images, and return the index of the current image. We introduce the extension; give examples to illustrate how clear, powerful, and flexible it can be; and provide a technical definition. Categories and subject descriptors: D.3 [PROGRAMMING LANGUAGES]. General Terms: Parallel programming. Additional Key Words and Phrases: Fortran. Department for Computation and Information, Rutherford Appleton Laboratory, Oxon OX11 0QX, UK August 1998. 1 Available by anonymous ftp from matisa.cc.rl.ac.uk in directory pub/reports in the file nrRAL98060.ps.gz 2 Silicon Graphics, Inc., 655 Lone Oak Drive, Eagan, MN 55121, USA. Email: -
Programming the Capabilities of the PC Have Changed Greatly Since the Introduction of Electronic Computers
1 www.onlineeducation.bharatsevaksamaj.net www.bssskillmission.in INTRODUCTION TO PROGRAMMING LANGUAGE Topic Objective: At the end of this topic the student will be able to understand: History of Computer Programming C++ Definition/Overview: Overview: A personal computer (PC) is any general-purpose computer whose original sales price, size, and capabilities make it useful for individuals, and which is intended to be operated directly by an end user, with no intervening computer operator. Today a PC may be a desktop computer, a laptop computer or a tablet computer. The most common operating systems are Microsoft Windows, Mac OS X and Linux, while the most common microprocessors are x86-compatible CPUs, ARM architecture CPUs and PowerPC CPUs. Software applications for personal computers include word processing, spreadsheets, databases, games, and myriad of personal productivity and special-purpose software. Modern personal computers often have high-speed or dial-up connections to the Internet, allowing access to the World Wide Web and a wide range of other resources. Key Points: 1. History of ComputeWWW.BSSVE.INr Programming The capabilities of the PC have changed greatly since the introduction of electronic computers. By the early 1970s, people in academic or research institutions had the opportunity for single-person use of a computer system in interactive mode for extended durations, although these systems would still have been too expensive to be owned by a single person. The introduction of the microprocessor, a single chip with all the circuitry that formerly occupied large cabinets, led to the proliferation of personal computers after about 1975. Early personal computers - generally called microcomputers - were sold often in Electronic kit form and in limited volumes, and were of interest mostly to hobbyists and technicians. -
How to Access Python for Doing Scientific Computing
How to access Python for doing scientific computing1 Hans Petter Langtangen1,2 1Center for Biomedical Computing, Simula Research Laboratory 2Department of Informatics, University of Oslo Mar 23, 2015 A comprehensive eco system for scientific computing with Python used to be quite a challenge to install on a computer, especially for newcomers. This problem is more or less solved today. There are several options for getting easy access to Python and the most important packages for scientific computations, so the biggest issue for a newcomer is to make a proper choice. An overview of the possibilities together with my own recommendations appears next. Contents 1 Required software2 2 Installing software on your laptop: Mac OS X and Windows3 3 Anaconda and Spyder4 3.1 Spyder on Mac............................4 3.2 Installation of additional packages.................5 3.3 Installing SciTools on Mac......................5 3.4 Installing SciTools on Windows...................5 4 VMWare Fusion virtual machine5 4.1 Installing Ubuntu...........................6 4.2 Installing software on Ubuntu....................7 4.3 File sharing..............................7 5 Dual boot on Windows8 6 Vagrant virtual machine9 1The material in this document is taken from a chapter in the book A Primer on Scientific Programming with Python, 4th edition, by the same author, published by Springer, 2014. 7 How to write and run a Python program9 7.1 The need for a text editor......................9 7.2 Spyder................................. 10 7.3 Text editors.............................. 10 7.4 Terminal windows.......................... 11 7.5 Using a plain text editor and a terminal window......... 12 8 The SageMathCloud and Wakari web services 12 8.1 Basic intro to SageMathCloud................... -
The Astropy Project: Building an Open-Science Project and Status of the V2.0 Core Package*
The Astronomical Journal, 156:123 (19pp), 2018 September https://doi.org/10.3847/1538-3881/aabc4f © 2018. The American Astronomical Society. The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package* The Astropy Collaboration, A. M. Price-Whelan1 , B. M. Sipőcz44, H. M. Günther2,P.L.Lim3, S. M. Crawford4 , S. Conseil5, D. L. Shupe6, M. W. Craig7, N. Dencheva3, A. Ginsburg8 , J. T. VanderPlas9 , L. D. Bradley3 , D. Pérez-Suárez10, M. de Val-Borro11 (Primary Paper Contributors), T. L. Aldcroft12, K. L. Cruz13,14,15,16 , T. P. Robitaille17 , E. J. Tollerud3 (Astropy Coordination Committee), and C. Ardelean18, T. Babej19, Y. P. Bach20, M. Bachetti21 , A. V. Bakanov98, S. P. Bamford22, G. Barentsen23, P. Barmby18 , A. Baumbach24, K. L. Berry98, F. Biscani25, M. Boquien26, K. A. Bostroem27, L. G. Bouma1, G. B. Brammer3 , E. M. Bray98, H. Breytenbach4,28, H. Buddelmeijer29, D. J. Burke12, G. Calderone30, J. L. Cano Rodríguez98, M. Cara3, J. V. M. Cardoso23,31,32, S. Cheedella33, Y. Copin34,35, L. Corrales36,99, D. Crichton37,D.D’Avella3, C. Deil38, É. Depagne4, J. P. Dietrich39,40, A. Donath38, M. Droettboom3, N. Earl3, T. Erben41, S. Fabbro42, L. A. Ferreira43, T. Finethy98, R. T. Fox98, L. H. Garrison12 , S. L. J. Gibbons44, D. A. Goldstein45,46, R. Gommers47, J. P. Greco1, P. Greenfield3, A. M. Groener48, F. Grollier98, A. Hagen49,50, P. Hirst51, D. Homeier52 , A. J. Horton53, G. Hosseinzadeh54,55 ,L.Hu56, J. S. Hunkeler3, Ž. Ivezić57, A. Jain58, T. Jenness59 , G. Kanarek3, S. Kendrew60 , N. S. Kern45 , W. E. -
An Introduction to Numpy and Scipy
An introduction to Numpy and Scipy Table of contents Table of contents ............................................................................................................................ 1 Overview ......................................................................................................................................... 2 Installation ...................................................................................................................................... 2 Other resources .............................................................................................................................. 2 Importing the NumPy module ........................................................................................................ 2 Arrays .............................................................................................................................................. 3 Other ways to create arrays............................................................................................................ 7 Array mathematics .......................................................................................................................... 8 Array iteration ............................................................................................................................... 10 Basic array operations .................................................................................................................. 11 Comparison operators and value testing .................................................................................... -
Homework 2 an Introduction to Convolutional Neural Networks
Homework 2 An Introduction to Convolutional Neural Networks 11-785: Introduction to Deep Learning (Spring 2019) OUT: February 17, 2019 DUE: March 10, 2019, 11:59 PM Start Here • Collaboration policy: { You are expected to comply with the University Policy on Academic Integrity and Plagiarism. { You are allowed to talk with / work with other students on homework assignments { You can share ideas but not code, you must submit your own code. All submitted code will be compared against all code submitted this semester and in previous semesters using MOSS. • Overview: { Part 1: All of the problems in Part 1 will be graded on Autolab. You can download the starter code from Autolab as well. This assignment has 100 points total. { Part 2: This section of the homework is an open ended competition hosted on Kaggle.com, a popular service for hosting predictive modeling and data analytic competitions. All of the details for completing Part 2 can be found on the competition page. • Submission: { Part 1: The compressed handout folder hosted on Autolab contains four python files, layers.py, cnn.py, mlp.py and local grader.py, and some folders data, autograde and weights. File layers.py contains common layers in convolutional neural networks. File cnn.py contains outline class of two convolutional neural networks. File mlp.py contains a basic MLP network. File local grader.py is foryou to evaluate your own code before submitting online. Folders contain some data to be used for section 1.3 and 1.4 of this homework. Make sure that all class and function definitions originally specified (as well as class attributes and methods) in the two files layers.py and cnn.py are fully implemented to the specification provided in this write-up. -
Data Analysis Tools for the HST Community
EXPANDING THE FRONTIERS OF SPACE ASTRONOMY Data Analysis Tools for the HST Community STUC 2019 Erik Tollerud Data Analysis Tools Branch Project Scientist What Are Data Analysis Tools? The Things After the Pipeline • DATs: Post-Pipeline Tools Spectral visualization tools Specutils Image visualization tools io models training & documentation modeling fitting - Analysis Tools astropy-helpers gwcs: generalized wcs wcs asdf: advanced data format JWST Tools tutorials ‣ Astropy software distribution astroquery MAST JWST data structures nddata ‣ Photutils models & fitting Astronomy Python Tool coordination photutils + others Development at STScI ‣ Specutils STAK: Jupyter notebooks - Visualization Tools IRAF Add to existing python lib cosmology External replacement Build replacement pkg ‣ Python Imexam (+ds9) constants astropy dev IRAF switchers guide affiliated packages no replacement ‣ Ginga ‣ SpecViz ‣ (MOSViz) ‣ (CubeViz) Data Analysis Software at STScI is for the Community Software that is meant to be used by the astronomy community to do their science. This talk is about some newer developments of interest to the HST user community. 2. 3. 1. IRAF • IRAF was amazing for its time, and the DAT for generations of astronomers What is the long-term replacement strategy? Python’s Scientific Ecosystem Has what Astro Needs Python is now the single most- used programming language in astronomy. Momcheva & Tollerud 2015 And 3rd-most in industry… Largely because of the vibrant scientific and numerical ecosystem (=Data Science): (Which HST’s pipelines helped start!) IRAF<->Python is not 1-to-1. Hence STAK Lead: Sara Ogaz Supporting both STScI’s internal scientists and the astronomy community at large (viewers like you) requires that the community be able to transition from IRAF to the Python-world.