This commit is contained in:
Bogumił Kamiński 2023-02-15 22:35:07 +01:00
commit 0e583bca97
6 changed files with 63 additions and 11 deletions

View File

@ -2,20 +2,33 @@
This repository contains source codes for the
["Julia for Data Analysis"](https://www.manning.com/books/julia-for-data-analysis?utm_source=bkamins&utm_medium=affiliate&utm_campaign=book_kaminski2_julia_3_17_22)
book that is written by Bogumił Kamiński and is planned to be published in 2022
by [Manning Publications Co.](https://www.manning.com/)
book that has been written by Bogumił Kamiński and has been published by [Manning Publications Co.](https://www.manning.com/)
Extras:
## Contents
* [Additional teaching materials](#additional-teaching-materials)
* [Setting up your environment](#setting-up-your-environment)
* [General instructions](#general-instructions)
* [Note for Linux users](#note-for-linux-users)
* [Organization of the code](#organization-of-the-code)
* [Running the example codes](#running-the-example-codes)
* [Accompanying materials](#accompanying-materials)
* [Data used in the book](#data-used-in-the-book)
* [Errata](#errata)
## Additional teaching materials
* in the `/exercises` folder for each book chapter you can find 10 additional
exercises with solutions (they are meant for self study and are not discussed
in the book)
* in the `/lectures` folder for each book chapter you can find a Jupyter
Notebook file with code from this chapter (note that the code is slightly
adjusted in comparison to code contained in .jl files in the root folder
to accomodate it for running in Jupyter Notebook).
to accommodate it for running in Jupyter Notebook).
## Setting up your environment
### General instructions
In order to prepare the Julia environment before working with the materials
presented in the book please perform the following setup steps:
@ -140,3 +153,42 @@ They are respectively:
<https://snap.stanford.edu/data/github-social.html> under GPL-3.0 License)
* owensboro.zip (for chapter 13, available at The Stanford Open Policing Project
under the Open Data Commons Attribution License)
## Errata
### Chapter 2, page 30
I compare the following expressions:
```
x > 0 && println(x)
```
and
```
if x > 0
println(x)
end
```
where `x = -7`.
I write there that Julia interprets them both in the same way.
It is true in terms of the fact that in both cases the `println` function is not called (and this is the focus point of the example).
However, there is a difference in the value of these expressions.
The first expression evaluates to `false`, while the second evaluates to `nothing`.
Here is how you can check it:
```
julia> x = -7
-7
julia> show(x > 0 && println(x))
false
julia> show(if x > 0
println(x)
end)
nothing
```

View File

@ -19,7 +19,7 @@ purpose, require using more functionalities of Julia ecosystem that is covered
in the book. This is meant to teach you how to use help and documentation,
as this is a very important skill to master.
The files containing exercises have a naming convention `execricesDD.md`, where
The files containing exercises have a naming convention `exercisesDD.md`, where
`DD` is book chapter number for which the exercises were prepared.
All the exercises should be possible to solve using project environment setting

View File

@ -64,7 +64,7 @@ and the error accumulates when we do addition multiple times.
than rational 1/7 by increasing the precision of computations using the `big`
function:
```
julia> big(1/7) # convert Floa64 to high-precision float
julia> big(1/7) # convert Float64 to high-precision float
0.142857142857142849212692681248881854116916656494140625
julia> 1/big(7) # construct high-precision float directly
@ -187,7 +187,7 @@ Note the differences in the code:
* if there are `0` or `1` element in the collection the function does not do
anything (depending on the context we might want to throw an error instead)
* in `x[begin], x[end] = x[end], x[begin]` we perform two assignments at the
same time to avoid having to use a temporaty variable `f` (this operation
same time to avoid having to use a temporary variable `f` (this operation
is technically called tuple destructuring; we discuss it in later chapters of
the book)

View File

@ -302,7 +302,7 @@ julia> for i in 1:40
20 18.100 μs (0 allocations: 0 bytes)
```
Notice that execution time for number `n` is roughly sum of ececution times
Notice that execution time for number `n` is roughly sum of execution times
for numbers `n-1` and `n-2`.
</details>

View File

@ -9,11 +9,11 @@
### Exercise 1
Random.org provides a service that returns random numbers. One of the ways
how you can use it is by sending HTTP GET reguests. Here is an example request:
how you can use it is by sending HTTP GET requests. Here is an example request:
> https://www.random.org/integers/?num=10&min=1&max=6&col=1&base=10&format=plain&rnd=new
If you want to understand all the parameters plese check their meaning
If you want to understand all the parameters please check their meaning
[here](https://www.random.org/clients/http/).
For us it is enough that this request generates 10 random integers in the range

View File

@ -385,7 +385,7 @@ plot([bar(string.(g.n), g.mv;
yerror=(g.mv - g.lo95, g.hi95-g.mv)) for g in gdf]...)
```
As expected error bandwidth gets smaller as `k` encreases.
As expected error bandwidth gets smaller as `k` increases.
Note that as `n` increases the estimated value tends to `1-exp(-1)`.
</details>