万本电子书0元读

万本电子书0元读

顶部广告

Scientific Computing with Scala电子书

售       价:¥

1人正在读 | 0人评论 9.8

作       者:Vytautas Jančauskas

出  版  社:Packt Publishing

出版时间:2016-04-01

字       数:184.9万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Learn to solve scientific computing problems using Scala and its numerical computing, data processing, concurrency, and plotting libraries About This Book Parallelize your numerical computing code using convenient and safe techniques. Accomplish common high-performance, scientific computing goals in Scala. Learn about data visualization and how to create high-quality scientific plots in Scala Who This Book Is For Scientists and engineers who would like to use Scala for their scientific and numerical computing needs. A basic familiarity with undergraduate level mathematics and statistics is expected but not strictly required. A basic knowledge of Scala is required as well as the ability to write simple Scala programs. However, complicated programming concepts are not used in the book. Anyone who wants to explore using Scala for writing scientific or engineering software will benefit from the book. What You Will Learn Write and read a variety of popular file formats used to store scientific data Use Breeze for linear algebra, optimization, and digital signal processing Gain insight into Saddle for data analysis Use ScalaLab for interactive computing Quickly and conveniently write safe parallel applications using Scala's parallel collections Implement and deploy concurrent programs using the Akka framework Use the Wisp plotting library to produce scientific plots Visualize multivariate data using various visualization techniques In Detail Scala is a statically typed, Java Virtual Machine (JVM)-based language with strong support for functional programming. There exist libraries for Scala that cover a range of common scientific computing tasks – from linear algebra and numerical algorithms to convenient and safe parallelization to powerful plotting facilities. Learning to use these to perform common scientific tasks will allow you to write programs that are both fast and easy to write and maintain. We will start by discussing the advantages of using Scala over other scientific computing platforms. You will discover Scala packages that provide the functionality you have come to expect when writing scientific software. We will explore using Scala's Breeze library for linear algebra, optimization, and signal processing. We will then proceed to the Saddle library for data analysis. If you have experience in R or with Python's popular pandas library you will learn how to translate those skills to Saddle. If you are new to data analysis, you will learn basic concepts of Saddle as well. Well will explore the numerical computing environment called ScalaLab. It comes bundled with a lot of scientific software readily available. We will use it for interactive computing, data analysis, and visualization. In the following chapters, we will explore using Scala's powerful parallel collections for safe and convenient parallel programming. Topics such as the Akka concurrency framework will be covered. Finally, you will learn about multivariate data visualization and how to produce professional-looking plots in Scala easily. After reading the book, you should have more than enough information on how to start using Scala as your scientific computing platform Style and approach Examples are provided on how to use Scala to do basic numerical and scientific computing tasks. All the concepts are illustrated with more involved examples in each chapter. The goal of the book is to allow you to translate existing experience in scientific computing to Scala.
目录展开

Scientific Computing with Scala

Table of Contents

Scientific Computing with Scala

Credits

About the Author

About the Reviewer

www.PacktPub.com

eBooks, discount offers, and more

Why subscribe?

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

Downloading the color images of this book

Errata

Piracy

Questions

1. Introducing Scientific Computing with Scala

Why Scala for scientific computing?

What are the advantages compared to C/C++/Java?

What are the advantages compared to MATLAB/Python/R?

Scala does parallelism well

Any downsides?

Numerical computing packages for Scala

Scalala

Breeze

ScalaLab

Data analysis packages for Scala

Saddle

MLlib

Other scientific software

FACTORIE

Cassovary

Figaro

Alternatives for doing plotting

Using Emacs as the Scala IDE

Profiling Scala code

Debugging Scala code

Building, testing, and distributing your Scala software

Directory structure

Testing Scala code with the help of SBT

ENSIME and SBT integration

Distributing your software

Mixing Java and Scala code

Summary

2. Storing and Retrieving Data

Reading and writing CSV files

Reading files in Scala

Parsing CSV data

Processing CSV data

Reading and writing JSON files

Spray-JSON

SON of JSON

Argonaut

Reading and writing XML files

Database access using JDBC

Database access using Slick

Plain SQL

Reading and writing HDF5 files

Summary

3. Numerical Computing with Breeze

Using Breeze in your project

Basic Breeze data structures

DenseVector

DenseMatrix

Indexing and slicing

Reshaping

Concatenation

Statistical computing with Breeze

Optimization

Signal processing

Fourier transforms

Other signal processing functionality

Cheat sheet

Creating matrices and vectors

Operations on matrices and vectors

Summary

4. Using Saddle for Data Analysis

Installing Saddle

Basic Saddle data structures

Using the Vec structure

Using arithmetic operations in Vec

Data access in Vec

Implementing the slice method in Vec

Statistic calculation in Vec

Using the Mat structure

Creating a matrix with Mat

Applying arithmetic operators in Mat structures

Using Matrix in the Mat structure

Series

Implementing the groupBy method in the Series structure

Applying the transform method in Series

Using numerical operators in Series

Joining Series using the join operation

Applying index.LeftJoin

Applying index.RightJoin

Applying index.InnerJoin

Applying index.OuterJoin

Frame

Using the rowAt method in Frame

Using the sortedColsBy method in Frame

Data analysis with Saddle

Using Breeze with Saddle

Summary

5. Interactive Computing with ScalaLab

Installing and running ScalaLab

Basic ScalaSci data structures

Vector

Matrix

Other ScalaSci functionality

Data storage and retrieval

Plotting with ScalaLab

Other ScalaLab features

Doing symbolic algebra using symja

Summary

6. Parallel Programming in Scala

Programming with Scala threads

A simple Scala thread example

Synchronization

Monte-Carlo pi calculation

Using Scala's parallel collections

Agent-based concurrency with the Akka framework

Monte-Carlo pi revisited

Using routing

Waiting for a reply

Summary

7. Cluster Computing Using Scala

Using MPJ Express for distributed computing

Setting up and running MPJ Express

Using Send and Recv

Sending Scala objects in MPJ Express messages

Non-blocking communication

Scatter and Gather

Setting up MPJ Express on clusters

Using an Akka cluster for distributed computing

Summary

8. Scientific Plotting with Scala

Plotting with JFreeChart

Using JFreeChart in your project

Creating a line plot

Creating a histogram

Creating a bar chart

Creating a box-and-whisker chart

Other plot types

Saving charts to a file

Plotting with scala-chart

Installing scala-chart

Creating a line plot

Creating a histogram

Creating a bar chart

Creating a box-and-whisker chart

Saving charts to a file

Plotting with Wisp

Creating a line plot

Creating a histogram

Creating a bar chart

Creating a box-and-whisker chart

Creating a linear regression plot

Interacting with the server

Summary

9. Visualizing Multi-Dimensional Data in Scala

Obtaining data to visualize

Andrews curve

Parallel coordinates

Scatter plot matrix

Sammon mapping

Improving the program

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部