diff --git a/content/tutorial-air-quality-analysis.md b/content/tutorial-air-quality-analysis.md index 30b51dca..6ddc427c 100644 --- a/content/tutorial-air-quality-analysis.md +++ b/content/tutorial-air-quality-analysis.md @@ -98,7 +98,7 @@ With this, we have successfully imported the data and checked that it is complet ## Calculating the Air Quality Index -We will calculate the AQI using [the method](https://app.cpcbccr.com/ccr_docs/FINAL-REPORT_AQI_.pdf) adopted by the [Central Pollution Control Board](https://www.cpcb.nic.in/national-air-quality-index/) of India. To summarize the steps: +We will calculate the AQI using the method adopted by the Central Pollution Control Board of India. To summarize the steps: - Collect 24-hourly average concentration values for the standard pollutants; 8-hourly in case of CO and O3. @@ -366,7 +366,4 @@ Note that this does not mean we can accept the alternative hypothesis. It only t ## Further reading -- There are a host of statistical tests you can choose according to the characteristics of the given data. Read more about them at -[A Gentle Introduction to Statistical Data Distributions](https://machinelearningmastery.com/statistical-data-distributions/). - - There are various versions of the [Student's t-test](https://en.wikipedia.org/wiki/Student%27s_t-test) that you can adopt according to your needs. diff --git a/content/tutorial-deep-learning-on-mnist.md b/content/tutorial-deep-learning-on-mnist.md index d58f4f7b..624b8665 100644 --- a/content/tutorial-deep-learning-on-mnist.md +++ b/content/tutorial-deep-learning-on-mnist.md @@ -33,7 +33,7 @@ This tutorial was adapted from the work by [Andrew Trask](https://github.com/iam The reader should have some knowledge of Python, NumPy array manipulation, and linear algebra. In addition, you should be familiar with main concepts of [deep learning](https://en.wikipedia.org/wiki/Deep_learning). -To refresh the memory, you can take the [Python](https://docs.python.org/dev/tutorial/index.html) and [Linear algebra on n-dimensional arrays](https://numpy.org/numpy-tutorials/content/tutorial-svd.html) tutorials. +To refresh the memory, you can take the [Python](https://docs.python.org/dev/tutorial/index.html) and {doc}`tutorial-svd` tutorials. You are advised to read the [Deep learning](http://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf) paper published in 2015 by Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, who are regarded as some of the pioneers of the field. You should also consider reading Andrew Trask's [Grokking Deep Learning](https://www.manning.com/books/grokking-deep-learning), which teaches deep learning with NumPy. diff --git a/content/tutorial-plotting-fractals.md b/content/tutorial-plotting-fractals.md index beb64e6d..cfed8c4e 100644 --- a/content/tutorial-plotting-fractals.md +++ b/content/tutorial-plotting-fractals.md @@ -207,7 +207,7 @@ def divergence_rate(mesh, num_iter=10, radius=2): The behaviour of this function may look confusing at first glance, so it will help to explain some of the notation. -Our goal is to iterate over each value in the mesh and to tally the number of iterations before the value diverges. Since some values will diverge quicker than others, we need a procedure that only iterates over values that have an absolute value that is sufficiently small enough. We also want to stop tallying values once they surpass the radius. For this, we can use **[Boolean Indexing](https://numpy.org/devdocs/reference/arrays.indexing.html#boolean-array-indexing)**, a NumPy feature that when paired with universal functions is unbeatable. Boolean Indexing allows for operations to be performed conditionally on a NumPy array without having to resort to looping over and checking for each array value individually. +Our goal is to iterate over each value in the mesh and to tally the number of iterations before the value diverges. Since some values will diverge quicker than others, we need a procedure that only iterates over values that have an absolute value that is sufficiently small enough. We also want to stop tallying values once they surpass the radius. For this, we can use **[Boolean Indexing](https://numpy.org/devdocs/user/basics.indexing.html#boolean-array-indexing)**, a NumPy feature that when paired with universal functions is unbeatable. Boolean Indexing allows for operations to be performed conditionally on a NumPy array without having to resort to looping over and checking for each array value individually. In our case, we use a loop to apply iterations to our function $f(z) = z^2 -1 $ and keep tally. Using Boolean indexing, we only apply the iterations to values that have an absolute value less than 2. diff --git a/content/tutorial-static_equilibrium.md b/content/tutorial-static_equilibrium.md index 29164be9..ce62ab06 100644 --- a/content/tutorial-static_equilibrium.md +++ b/content/tutorial-static_equilibrium.md @@ -304,14 +304,14 @@ RadCF = np.cross(AC, UnitCF) This lets you represent the tension (T) and reaction (R) forces acting on the system as $$\left[ -\begin{array} +\begin{array}{ccccc} ~1/3 & 1/3 & 1 & 0 & 0\\ -2/3 & -2/3 & 0 & 1 & 0\\ -2/3 & 2/3 & 0 & 0 & 1\\ \end{array} \right] \left[ -\begin{array} +\begin{array}{c} ~T_{BD}\\ T_{BE}\\ R_{x}\\ @@ -321,7 +321,7 @@ R_{z}\\ \right] = \left[ -\begin{array} +\begin{array}{c} ~195\\ 390\\ -130\\ @@ -331,20 +331,20 @@ R_{z}\\ and the moments as $$\left[ -\begin{array} +\begin{array}{cc} ~2 & -2\\ 1 & 1\\ \end{array} \right] \left[ -\begin{array} +\begin{array}{c} ~T_{BD}\\ T_{BE}\\ \end{array} \right] = \left[ -\begin{array} +\begin{array}{c} ~780\\ 1170\\ \end{array} diff --git a/content/tutorial-x-ray-image-processing.md b/content/tutorial-x-ray-image-processing.md index aa3f508a..605ac5f0 100644 --- a/content/tutorial-x-ray-image-processing.md +++ b/content/tutorial-x-ray-image-processing.md @@ -24,8 +24,7 @@ on certain parts, and visually compare them using the [Canny](https://en.wikipedia.org/wiki/Canny_edge_detector) filters for edge detection. -X-ray image analysis can be part of your data analysis and -[machine learning workflow](https://www.sciencedirect.com/science/article/pii/S235291481930214X) +X-ray image analysis can be part of your data analysis and machine learning workflow when, for example, you're building an algorithm that helps [detect pneumonia](https://www.kaggle.com/c/rsna-pneumonia-detection-challenge) as part of a [Kaggle](https://www.kaggle.com) @@ -36,8 +35,8 @@ particularly important when images are estimated to account for medical data. You'll be working with radiology images from the -[ChestX-ray8](https://www.nih.gov/news-events/news-releases/nih-clinical-center-provides-one-largest-publicly-available-chest-x-ray-datasets-scientific-community) -dataset provided by the [National Institutes of Health (NIH)](http://nih.gov). +[ChestX-ray8](https://arxiv.org/abs/1705.02315) +dataset provided by the [National Institutes of Health (NIH)](https://nih.gov). ChestX-ray8 contains over 100,000 de-identified X-ray images in the PNG format from more than 30,000 patients. You can find ChestX-ray8's files on NIH's public Box [repository](https://nihcc.app.box.com/v/ChestXray-NIHCC) in the `/images` @@ -69,7 +68,7 @@ The following packages are used in this tutorial: - [imageio](https://imageio.github.io) for reading and writing image data. The healthcare industry usually works with the [DICOM](https://en.wikipedia.org/wiki/DICOM) format for medical imaging and -[imageio](https://imageio.readthedocs.io/en/stable/format_dicom.html) should be +[imageio](https://imageio.readthedocs.io/en/stable/_autosummary/imageio.plugins.dicom.html) should be well-suited for reading that format. For simplicity, in this tutorial you'll be working with PNG files. - [Matplotlib](https://matplotlib.org/) for data visualization. @@ -517,7 +516,6 @@ download. To learn more about image processing in the context of biomedical image data or simply edge detection, you may find the following material useful: -- [DICOM processing and segmentation in Python](https://www.raddq.com/dicom-processing-segmentation-visualization-in-python/) with Scikit-Image and pydicom (Radiology Data Quest) - [Image manipulation and processing using Numpy and Scipy](https://scipy-lectures.org/advanced/image_processing/index.html) (Scipy Lecture Notes) - [Intensity values](https://s3.amazonaws.com/assets.datacamp.com/production/course_7032/slides/chapter2.pdf) (presentation, DataCamp) - [Object detection with Raspberry Pi and Python](https://makersportal.com/blog/2019/4/23/image-processing-with-raspberry-pi-and-python-part-ii-spatial-statistics-and-correlations) (Maker Portal) diff --git a/site/index.md b/site/index.md index b026eacc..19ce61a1 100644 --- a/site/index.md +++ b/site/index.md @@ -27,7 +27,6 @@ The following links may be useful: - [Main NumPy documentation](https://numpy.org/doc/stable/) - [NumPy documentation team meeting notes](https://hackmd.io/oB_boakvRqKR-_2jRV-Qjg?both) - [NEP 44 - Restructuring the NumPy documentation](https://numpy.org/neps/nep-0044-restructuring-numpy-docs.html) -- [Blog post - Documentation as a way to build Community](https://labs.quansight.org/blog/2020/03/documentation-as-a-way-to-build-community/) Note that regular documentation issues for NumPy can be found in the [main NumPy repository](https://github.com/numpy/numpy/issues) (see the `Documentation` diff --git a/tox.ini b/tox.ini index 8ec29880..657222e0 100644 --- a/tox.ini +++ b/tox.ini @@ -43,7 +43,7 @@ commands = !buildhtml: pytest --nbval-lax --durations=10 content/ - buildhtml: bash -c "jupyter-book build --execute --html -d" + buildhtml: bash -c "jupyter-book build --execute --html --strict -d" pip_pre = predeps: true