
Learning Julia
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Person
Anshul Joshi is a data scientist with experience in recommendation systems, predictive modeling, neural networks, and high performance computing. His research interests encompass deep learning, artificial intelligence, and computational physics. Most of the time, he can be caught exploring GitHub or trying anything new he can get his hands on. You can also follow his personal blog.Lakhanpal Rahul :
Rahul Lakhanpal is a technology and open source enthusiast. With diversified skills including systems engineering, web development, the cloud, and big data, he is language-agnostic and a firm believer in using the best tools and the right language for a particular job. Rahul is an active contributor to various community portals and loves to solve challenging real-world problems in his leisure time. He is active on Twitter and writes blogs as well.
Content
- Cover
- Copyright
- Credits
- About the Authors
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Understanding Julia's Ecosystem
- What makes Julia unique?
- Features and advantages of Julia
- Installing Julia
- Julia on Ubuntu (Linux)
- Julia on Fedora/CentOS/Red Hat (Linux)
- Julia on Windows
- Julia on Mac
- Building from source
- Understanding the directory structure of Julia's source
- Julia's source stack
- Julia's importance in data science
- Benchmarks
- Using REPL
- Using help in Julia
- Plots in REPL
- Using Jupyter Notebook
- What is Juno?
- Package management
- Pkg.status() - package status
- Pkg.add() - adding packages
- Working with unregistered packages
- Pkg.update() - package update
- METADATA repository
- Developing packages
- Creating a new package
- A brief about multiple dispatch
- Methods in multiple dispatch
- Understanding LLVM and JIT
- Summary
- References
- Chapter 2: Programming Concepts with Julia
- Revisiting programming paradigms
- Imperative programming paradigm
- Logical programming paradigm
- Functional programming paradigm
- Object-oriented paradigm
- Starting with Julia REPL
- Variables in Julia
- Naming conventions
- Integers, bits, bytes, and bools
- Playing with integers in REPL
- Understanding overflow behavior
- Understanding the Boolean data type
- Floating point numbers in Julia
- Special functions on floating point numbers
- Operations on floating point numbers
- Computations with arbitrary precision arithmetic
- Writing expressions with coefficients
- Logical and arithmetic operations in Julia
- Performing arithmetic operations
- Performing bitwise operations
- Operators for comparison and updating
- Precedence of operators
- Type conversions (numerical)
- Understanding arrays, matrices, and multidimensional arrays
- List comprehension in Julia
- Creating an empty array
- Operations on arrays
- Working with matrices
- Different operation on matrices
- Working with multidimensional arrays (matrices)
- Understanding sparse matrices
- Understanding DataFrames
- NA data type in DataArray
- The requirement of the NA data type
- DataArray - a series-like data structure
- DataFrames - tabular data structures
- Summary
- Chapter 3: Functions in Julia
- Creating functions
- The special !
- Function arguments
- Pass by values versus pass by reference
- Pass by sharing
- The return keyword
- Arguments
- No arguments
- Varargs
- Optional arguments
- Understanding scope with respect to functions
- Nested functions
- Anonymous functions
- Multiple dispatch
- Understanding methods
- Recursion
- Built-in functions
- An example using simple built-in functions
- Summary
- Chapter 4: Understanding Types and Dispatch
- Julia's type system
- What are types?
- Statically-typed versus dynamically-typed languages
- So, is Julia a dynamically-typed or statically-typed language?
- Type annotations
- More on types
- The Integer type
- The Float type
- The Char type
- The String type
- The Bool type
- Type conversions
- The subtypes and supertypes
- The supertype() function
- The subtype() function
- User-defined and composite data types
- Composite types
- Inner constructors
- Modules and interfaces
- Including files in modules
- Module file paths
- What is module precompilation?
- Multiple dispatch explained
- Summary
- Chapter 5: Working with Control Flow
- Conditional and repeated evaluation
- Conditional evaluation in detail
- Short-circuit evaluation
- Repeated evaluation
- Defining range
- Some more examples of the for loop
- The break and continue
- Exception handling
- The throw() function
- The error() function
- The try/catch/finally blocks
- Tasks in Julia
- Summary
- Chapter 6: Interoperability and Metaprogramming
- Interacting with operating systems
- Filesystem operations
- I/O operations
- Example
- Calling C and Python!
- Calling C from Julia
- Calling Python from Julia
- Expressions and macros
- Macros
- But why metaprogramming?
- Built-in macros
- Type introspection and reflection capabilities
- Type introspection
- Reflection capabilities
- Summary
- Chapter 7: Numerical and Scientific Computation with Julia
- Working with data
- Working with text files
- Working with CSV and delimited file formats
- Working with DataFrames
- NA
- DataArrays
- DataFrames
- Linear algebra and differential calculus
- Linear algebra
- Differential calculus
- Statistics
- Simple statistics
- Basic statistics using DataFrames
- Using Pandas
- Advanced statistics topics
- Distributions
- TimeSeries
- Hypothesis testing
- Optimization
- JuMP
- Convex.jl
- Summary
- Chapter 8: Data Visualization and Graphics
- Basic plots
- Bar graphs
- Histograms
- Pie charts
- Scatter plots
- 3-D surface plots
- Vega
- Area plots
- Aster plots
- Choropleth map
- Heatmaps
- Ribbon plots
- Wordcloud
- Scatter plots
- Gadfly
- Interacting with Gadfly using the plot function
- Plotting DataFrames with Gadfly
- Summary
- Chapter 9: Connecting with Databases
- How to connect with databases?
- Relational databases
- SQLite
- MySQL
- NoSQL databases
- MongoDB
- Introduction to REST
- What is JSON?
- Web frameworks
- Summary
- Chapter 10: Julia's Internals
- Under the hood
- Femtolisp
- The Julia Core API
- Performance enhancements
- Global variables
- Type declarations
- Fields with abstract types
- Container fields with abstract type
- Declaring type for keyword arguments
- Miscellaneous performance tweaks
- Standard library
- LLVM and JIT explained
- Parallel computing
- Focusing on global variables
- Running loops in parallel
- TCP sockets and servers
- Sockets
- Creating packages
- Guidelines for package naming
- Generating a package
- Summary
- Index
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.