Mastering Julia
eBook - ePub

Mastering Julia

Malcolm Sherrington

Share book
  1. 410 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Mastering Julia

Malcolm Sherrington

Book details
Book preview
Table of contents
Citations

About This Book

This hands-on guide is aimed at practitioners of data science. The book assumes some previous skills with Julia and skills in coding in a scripting language such as Python or R, or a compiled language such as C or Java.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Mastering Julia an online PDF/ePUB?
Yes, you can access Mastering Julia by Malcolm Sherrington in PDF and/or ePUB format, as well as other popular books in Computer Science & Systems Architecture. We have over one million books available in our catalogue for you to explore.

Information

Year
2015
ISBN
9781783553310
Edition
1

Mastering Julia


Table of Contents

Mastering Julia
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. The Julia Environment
Introduction
Philosophy
Role in data science and big data
Comparison with other languages
Features
Getting started
Julia sources
Building from source
Installing on CentOS
Mac OS X and Windows
Exploring the source stack
Juno
IJulia
A quick look at some Julia
Julia via the console
Installing some packages
A bit of graphics creating more realistic graphics with Winston
My benchmarks
Package management
Listing, adding, and removing
Choosing and exploring packages
Statistics and mathematics
Data visualization
Web and networking
Database and specialist packages
How to uninstall Julia
Adding an unregistered package
What makes Julia special
Parallel processing
Multiple dispatch
Homoiconic macros
Interlanguage cooperation
Summary
2. Developing in Julia
Integers, bits, bytes, and bools
Integers
Logical and arithmetic operators
Booleans
Arrays
Operations on matrices
Elemental operations
A simple Markov chain – cat and mouse
Char and strings
Characters
Strings
Unicode support
Regular expressions
Byte array literals
Version literals
An example
Real, complex, and rational numbers
Reals
Operators and built-in functions
Special values
BigFloats
Rationals
Complex numbers
Juliasets
Composite types
More about matrices
Vectorized and devectorized code
Multidimensional arrays
Broadcasting
Sparse matrices
Data arrays and data frames
Dictionaries, sets, and others
Dictionaries
Sets
Other data structures
Summary
3. Types and Dispatch
Functions
First-class objects
Passing arguments
Default and optional arguments
Variable argument list
Named parameters
Scope
The Queen's problem
Julia's type system
A look at the rational type
A vehicle datatype
Typealias and unions
Enumerations (revisited)
Multiple dispatch
Parametric types
Conversion and promotion
Conversion
Promotion
A fixed vector module
Summary
4. Interoperability
Interfacing with other programming environments
Calling C and Fortran
Mapping C types
Array conversions
Type correspondences
Calling a Fortran routine
Calling curl to retrieve a web page
Python
Some others to watch
The Julia API
Calling API from C
Metaprogramming
Symbols
Macros
Testing
Error handling
The enum macro
Tasks
Parallel operations
Distributed arrays
A simple MapReduce
Executing commands
Running commands
Working with the filesystem
Redirection and pipes
Perl one-liners
Summary
5. Working with Data
Basic I/O
Terminal I/O
Disk files
Text processing
Binary files
Structured datasets
CSV and DLM files
HDF5
XML files
DataFrames and RDatasets
The DataFrames package
DataFrames
RDatasets
Subsetting, sorting, and joining data
Statistics
Simple statistics
Samples and estimations
Pandas
Selected topics
Time series
Distributions
Kernel density
Hypothesis testing
GLM
Summary
6. Scientific Programming
Linear algebra
Simultaneous equations
Decompositions
Eigenvalues and eigenvectors
Special matrices
A symmetric eigenproblem
Signal processing
Frequency analysis
Filtering and smoothing
Digital signal filters
Image processing
Differential equations
The solution of ordinary differential equations
Non-linear ordinary differential equations
Partial differential equations
Optimization problems
JuMP
Optim
NLopt
Using with the MathProgBase interface
Stochastic problems
Stochastic simulations
SimJulia
Bank teller example
Bayesian methods and Markov processes
Monte Carlo Markov Chains
MCMC frameworks
Summary
7. Graphics
Basic graphics in Julia
Text plotting
Cairo
Winston
Data visualization
Gadfly
Compose
Graphic engines
PyPlot
Gaston
PGF plots
Using the Web
Bokeh
Plotly
Raster graphics
Cairo (revisited)
Winston (revisited)
Images and ImageView
Summary
8. Databases
A basic view of databases
The red pill or the blue pill?
Interfacing to databases
Other considerations
Relational databases
Building and loading
Native interfaces
ODBC
Other interfacing techniques
DBI
SQLite
MySQL
PostgreSQL
PyCall
JDBC
NoSQL datastores
Key-value systems
Document datastores
RESTful interfacing
JSON
Web-based databases
Graphic systems
Summary
9. Networking
Sockets and servers
Well-known ports
UDP and TCP sockets in Julia
A "Looking-Glass World" echo server
Named pipes
Working with the Web
A TCP web service
The JuliaWeb group
The "quotes" server
WebSockets
Messaging...

Table of contents