
www.it-ebooks.info SciPy and NumPy Eli Bressert Beijing • Cambridge • Farnham • Koln¨ • Sebastopol • Tokyo www.it-ebooks.info 9781449305468_text.pdf 1 10/31/12 2:35 PM SciPy and NumPy by Eli Bressert Copyright © 2013 Eli Bressert. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Interior Designer: David Futato Project Manager: Paul C. Anagnostopoulos Cover Designer: Randy Comer Copyeditor: MaryEllen N. Oliver Editors: Rachel Roumeliotis, Proofreader: Richard Camp Meghan Blanchette Illustrators: EliBressert,LaurelMuller Production Editor: Holly Bauer November 2012: First edition Revision History for the First Edition: 2012-10-31 First release See http://oreilly.com/catalog/errata.csp?isbn=0636920020219 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. SciPy and NumPy, the image of a three-spined stickleback, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN: 978-1-449-30546-8 [LSI] www.it-ebooks.info 9781449305468_text.pdf 2 10/31/12 2:35 PM Table of Contents Preface ........................................................v 1. Introduction ................................................1 1.1 Why SciPy and NumPy? 1 1.2 Getting NumPy and SciPy 2 1.3 Working with SciPy and NumPy 3 2. NumPy ....................................................5 2.1 NumPy Arrays 5 2.2 Boolean Statements and NumPy Arrays 10 2.3 Read and Write 12 2.4 Math 14 3. SciPy....................................................17 3.1 Optimization and Minimization 17 3.2 Interpolation 22 3.3 Integration 26 3.4 Statistics 28 3.5 Spatial and Clustering Analysis 32 3.6 Signal and Image Processing 38 3.7 Sparse Matrices 40 3.8 Reading and Writing Files Beyond NumPy 41 4. SciKit: Taking SciPy One Step Further ...............................43 4.1 Scikit-Image 43 4.2 Scikit-Learn 48 5. Conclusion .................................................55 5.1 Summary 55 5.2 What’s Next? 55 iii www.it-ebooks.info 9781449305468_text.pdf 3 10/31/12 2:35 PM www.it-ebooks.info 9781449305468_text.pdf 4 10/31/12 2:35 PM Preface Python, a high-level language with easy-to-read syntax, is highly flexible, which makes it an ideal language to learn and use. For science and R&D,a few extra packages are used to streamline the development process and obtain goals with the fewest steps possible. Among the best of these are SciPy and NumPy. This book gives a brief overview of different tools in these two scientific packages, in order to jump start their use in the reader’s own research projects. NumPy and SciPy are the bread-and-butter Python extensions for numerical arrays and advanced data analysis. Hence, knowing what tools they contain and how to use them will make any programmer’s life more enjoyable. This book will cover their uses, ranging from simple array creation to machine learning. Audience Anyone with basic (and upward) knowledge of Python is the targeted audience for this book. Although the tools in SciPy and NumPy are relatively advanced, using them is simple and should keep even a novice Python programmer happy. Contents of this Book This book covers the basics of SciPy and NumPy with some additional material. The first chapter describes what the SciPy and NumPy packages are, and how to access and install them on your computer. Chapter 2 goes over the basics of NumPy, starting with array creation. Chapter 3, which comprises the bulk of the book, covers a small sample of the voluminous SciPy toolbox. This chapter includes discussion and examples on integration, optimization, interpolation, and more. Chapter 4 discusses two well-known scikit packages: scikit-image and scikit-learn. These provide much more advanced material that can be immediately applied to real-world problems. In Chapter 5, the conclusion, we discuss what to do next for even more advanced material. v www.it-ebooks.info 9781449305468_text.pdf 5 10/31/12 2:35 PM Conventions Used in This Book The following typographical conventions are used in this book: Plain text Indicates menu titles, menu options, menu buttons, and keyboard accelerators (such as Alt and Ctrl). Italic Indicates new terms, URLs, email addresses, filenames, file extensions, pathnames, directories, and Unix utilities. Constant width Indicates commands, options, switches, variables, attributes, keys, functions, types, classes, namespaces, methods, modules, properties, parameters, values, objects, events, event handlers, XML tags, HTML tags, macros, the contents of files, or the output from commands. This icon signifies a tip, suggestion, or general note. This icon indicates a warning or caution. Using Code Examples This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission. We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “SciPy and NumPy by Eli Bressert (O’Reilly). Copyright 2013 Eli Bressert, 978-1-449-30546-8.” If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at [email protected]. We’d Like to Hear from You Please address comments and questions concerning this book to the publisher: vi | Preface www.it-ebooks.info 9781449305468_text.pdf 6 10/31/12 2:35 PM O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 (800) 998-9938 (in the United States or Canada) (707) 829-0515 (international or local) (707) 829-0104 (fax) We have a web page for this book, where we list errata, examples, links to the code and data sets used, and any additional information. You can access this page at: http://oreil.ly/SciPy_NumPy To comment or ask technical questions about this book, send email to: [email protected] For more information about our books, courses, conferences, and news, see our website at http://www.oreilly.com. Find us on Facebook: http://facebook.com/oreilly Follow us on Twitter: http://twitter.com/oreillymedia WatchusonYouTube:http://www.youtube.com/oreillymedia Safari® Books Online Safari Books Online (www.safaribooksonline.com) is an on-demand digital library that delivers expert content in both book and video form from the world’s leading authors in technology and business. Technology professionals, software developers, web designers, and business and cre- ative professionals use Safari Books Online as their primary resource for research, problem solving, learning, and certification training. Safari Books Online offers a range of product mixes and pricing programs for organi- zations, government agencies, and individuals. Subscribers have access to thousands of books, training videos, and prepublication manuscripts in one fully searchable data- base from publishers like O’Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technol- ogy,and dozens more. For more information about Safari Books Online, please visit us online. Acknowledgments I would like to thank Meghan Blanchette and Julie Steele, my current and previous editors, for their patience, help, and expertise. This book wouldn’t have materialized without their assistance. The tips, warnings, and package tools discussed in the book Preface | vii www.it-ebooks.info 9781449305468_text.pdf 7 10/31/12 2:35 PM were much improved thanks to the two book reviewers: Tom Aldcroft and Sarah Kendrew. Colleagues and friends that have helped discuss certain aspects of this book and bolstered my drive to get it done are Leonardo Testi, Nate Bastian, Diederik Kruijssen, Joao Alves, Thomas Robitaille, and Farida Khatchadourian. A big thanks goes to my wife and son, Judith van Raalten and Taj Bressert, for their help and inspiration, and willingness to deal with me being huddled away behind the computer for endless hours. viii | Preface www.it-ebooks.info 9781449305468_text.pdf 8 10/31/12 2:35 PM CHAPTER 1 Introduction Python is a powerful programming language when considering portability, flexibility, syntax, style, and extendability. The language was written by Guido van Rossum with clean syntax built in. To define a function or initiate a loop, indentation is used instead of brackets. The result is profound: a Python programmer can look at any given uncommented Python code and quickly understand its inner workings and purpose. Compiled languages like Fortran and C are natively much faster than Python, but not necessarily so when Python is bound to them.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages66 Page
-
File Size-