Skip to content

Commit 02f22ee

Browse files
committed
david edits
1 parent 7f048a6 commit 02f22ee

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

Python/module_1.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ Module 1: Getting Started with Python
22
=====================================
33
This module introduces the reader to the Python programming language and to some powerful tools for writing and running Python code. We will discuss what Python is, what it means to be a programming language, as well as what happens when you install Python on your computer.
44

5-
Next, we will step through the process of installing Python on our computers. Specifically, we will be installing the Anaconda distribution of Python, which includes critical 3rd party libraries and tools that are essential for doing any technical work (e.g. NumPy, matplotlib, and Jupyter).
5+
Next, we will step through the process of installing Python on our computers. Specifically, we will be installing the Anaconda distribution of Python, which includes critical 3rd party libraries and tools that are essential for doing any STEM-related work (e.g. NumPy, matplotlib, and Jupyter).
66

7-
Ready or not, it's time to actually write some code! Armed with our fresh install of Python, we will embark on an informal introduction to the language by dabbling with numbers, messing with strings, and playing with lists. This will begin to build an intuition of what Python's syntaxes generally look like and what it feels like to write and run Python code. Module 2 is where we will begin a more careful study of the language.
7+
Ready or not, it's time to actually write some code! Armed with our fresh install of Python, we will embark on an informal introduction to the language by dabbling with numbers, messing with strings, and playing with lists. This will allow us to begin building an intuition of what Python's syntax generally looks like and what it feels like to write and run Python code. Module 2 is where we will begin a more careful study of the language.
88

99
Lastly, we will take some time to survey some modern tools for writing and editing Python code. This includes the revolutionary Jupyter notebook, which has become a fantastically popular tool for researchers, data scientists, educators, and students alike. Also presented are two of the most powerful integrated development environments (IDEs) for Python: PyCharm and Visual Studio Code.
1010

Python/module_3.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
Module 3: The Essentials of NumPy
22
==================================
3-
NumPy is the reason why Python stands among the ranks of R, Matlab, and Julia, as one of the most popular languages for doing STEM-related technical computing. It is a 3rd party library (i.e. it is not part of Python's standard library) that facilitates numerical computing in Python by providing users with a versatile N-dimensional array object for storing data, and powerful mathematical functions for operating on those arrays of numbers. NumPy implements its features in ways that are highly optimized, via a process known as vectorization, that enables a degree of computational efficiency that is otherwise unachievable by the Python language.
3+
NumPy is the reason why Python stands among the ranks of R, Matlab, and Julia, as one of the most popular languages for doing STEM-related computing. It is a third-party library (i.e. it is not part of Python's standard library) that facilitates numerical computing in Python by providing users with a versatile N-dimensional array object for storing data, and powerful mathematical functions for operating on those arrays of numbers. NumPy implements its features in ways that are highly optimized, via a process known as vectorization, that enables a degree of computational efficiency that is otherwise unachievable by the Python language.
44

5-
The impact that NumPy has had on the landscape of technical computing in Python is hard to overstate. Whether you are plotting data in matplotlib, analyzing tabular data via `pandas <https://pandas.pydata.org>`_ and `xarray <https://xarray.pydata.org/en/stable>`_, using `OpenCV <https://opencv.org>`_ for image and video processing, doing astrophysics research with the help of `astropy <www.astropy.org>`_, or trying out machine learning with `Scikit-Learn <https://scikit-learn.org/stable/index.html>`_ and `MyGrad <https://mygrad.readthedocs.io >`_, you are using Python libraries that bare the indelible mark of NumPy. At their core, each of these libraries depend on NumPy's N-dimensional array and its efficient vectorization capabilities. It also fundamentally impacts the designs of these libraries and the way that they interface with their users. Thus, one cannot leverage these tools effectively, and cannot do STEM work in Python in general, without having a solid foundation in NumPy.
5+
The impact that NumPy has had on the landscape of numerical computing in Python is hard to overstate. Whether you are plotting data in matplotlib, analyzing tabular data via `pandas <https://pandas.pydata.org>`_ and `xarray <https://xarray.pydata.org/en/stable>`_, using `OpenCV <https://opencv.org>`_ for image and video processing, doing astrophysics research with the help of `astropy <www.astropy.org>`_, or trying out machine learning with `Scikit-Learn <https://scikit-learn.org/stable/index.html>`_ and `MyGrad <https://mygrad.readthedocs.io >`_, you are using Python libraries that bare the indelible mark of NumPy. At their core, each of these libraries depend on NumPy's N-dimensional array and its efficient vectorization capabilities. NumPy also fundamentally impacts the designs of these libraries and the way that they interface with their users. Thus, one cannot leverage these tools effectively, and cannot do STEM work in Python in general, without having a solid foundation in NumPy.
66

7-
Thus, this module presents to us the essentials of NumPy. We will first define what the term dimensionality means and will develop an intuition for what zero, one, two, and N-dimensional arrays are, and why they are invaluable for data science applications. Next, we will discuss the ambiguities of array traversal-order and NumPy's default use of row-major ordering. We will then arrive at the critical topic of vectorization, which prescribes the ways in which NumPy dispatches mathematical operations over arrays of numbers. This will also give us keen insight into how NumPy achieves its tremendous computational efficiency. Finally, we will dive into some of NumPy's more advanced features. These include its rules for broadcasting mathematical operations between arrays of different shapes, as well as its mechanisms for accessing and updating an array's contents via basic and advanced indexing. Armed with these techniques, we will be able to write concise and powerful numerical code using NumPy and Python's many other STEM libraries!
7+
This module presents to us the essentials of NumPy. We will first define what the term dimensionality means and will develop an intuition for what zero, one, two, and N-dimensional arrays are, and why they are invaluable for data science applications. Next, we will discuss the ambiguities of array traversal-order and NumPy's default use of row-major ordering. We will then arrive at the critical topic of vectorization, which prescribes the ways in which NumPy dispatches mathematical operations over arrays of numbers. This will also give us keen insight into how NumPy achieves its tremendous computational efficiency. Finally, we will dive into some of NumPy's more advanced features. These include its rules for broadcasting mathematical operations between arrays of different shapes, as well as its mechanisms for accessing and updating an array's contents via basic and advanced indexing. Armed with these techniques, we will be able to write concise and powerful numerical code using NumPy and Python's many other STEM libraries!
88

99

1010

Python/module_4.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Module 4: Object Oriented Programming
22
=====================================
3-
In this module, we will come to see that Python is an object-oriented language. That is, the language is all about defining different types of objects that encapsulate data, and that possess functions that permit users to access and manipulate their data this data. Our tour through [the essentials of Python](module_2.rst) and [the essentials of NumPy](module_3.rst) brought us into contact with various types of objects, such as the `int`, `str`, `list`, `tuple`, `dict`, and the `numpy.ndarray` to name a few. We have seen that these different types of objects have starkly different functionality from one another. We will study the syntax and constructs for creating and interacting with objects in Python. Ultimately, will find our skill sets as Python-users much fuller and more-sophisticated having understood object-oriented programming in Python.
3+
In this module, we will come to see that Python is an object-oriented language. That is, the language is all about defining different types of objects that encapsulate data, and that possess functions that permit users to access and manipulate this data. Our tour through [the essentials of Python](module_2.rst) and [the essentials of NumPy](module_3.rst) brought us into contact with various types of objects, such as the `int`, `str`, `list`, `tuple`, `dict`, and the `numpy.ndarray`, to name a few. We have seen that these different types of objects have starkly different functionality from one another. We will study the syntax and constructs for creating and interacting with objects in Python. Ultimately, will find our skill sets as Python-users much fuller and more sophisticated having understood object-oriented programming in Python.
44

55
We being this module by establishing some key terminology for discussing object-oriented programming, drawing attention to the important fact that the terms 'class' and 'type' mean the same thing in modern Python. Next, we study the syntax for defining a class, and take time to distinguish between the resulting class object and the subsequent class instances that can then be created. Having defined our first custom class of object, we then study the syntax for defining class-methods, which permits us add customized functionality to our class. Further, we will introduce ourselves to Python's reserved special methods, which empower us to fully interface our class with the Python's protocols for behaving like a sequence, an iterable, a function, etc. We conclude this module with a brief discussion of the concept of inheritance, which is a mechanism by which a new class can inherit attributes from an existing class.
66

0 commit comments

Comments
 (0)