Python Resources for Math 499

This is a draft for material that may be moved to the official course site

= Software =

Install Anaconda Python/Spyder for Python
Why install Anaconda rather than some other perfectly reasonable download? Because:


 * It does an install of both core Python and lots of extensions of use in science and mathematics.
 * It includes a nice ( but not perfect ) Integrated Development Environment, IDE.
 * It has a good command line update tool ( called "conda" this is in addition to the usual "pip" ).
 * It is well supported, has good resources on web.
 * Of course, it is free.

Download for all operating system at: DOWNLOAD ANACONDA NOW Anaconda supports both Python 2.7 and 3.x, generally we prefer 2.7 as not all packages that you want may have been upgraded to 3.x. Anaconda can support both with easy version switching, but Russ at any rate has not figured this out.

For a list of the extensions in Anaconda see: Anaconda package list The list also has links to more information on the packages.

Python Extensions You May Want
Most of these already in the Anaconda install but if you are not using it you may want to add extensions. Anaconda extensions are supported with the conda utility. If conda will not do the trick you may need another installation path. When conda does not work try installing with pip or Google or ask Russ.


 * SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering. In particular, these are some of the core packages: NumPy ( numerical methods ), SciPy ( scientific computing ), Matplotlib ( plotting ), Sympy ( symbolic mathematics), pandas ( data structures & analysis ) and more ......  SciPy.org
 * TkInter for construction of Graphical User Interfaces ( GUI's ) TkInter
 * Beautiful Soup for screen scraping, web data harvesting. Beautiful Soup

SageMath
Is a version of Python and an environment for running it especially developed for math and science. Once you are set up to use it access is from your web browser and work is saved in notebooks. It is, at least to me, a very interesting environment similar in many ways to Matlab or Mathematica. They are closed source, this is open.

There are several free servers you can point your browse at but they may not offer great availability or performance. My ( Russ ) preferred method of running it is to install a server on my laptop and connect as local host. This is too big a topic for me to author a good treatment here ( and now ) but you should at least be aware of this option.

If you are adventurous Google Sagemath and see what you can do.

= Readings, Documentation, and Similar Resources =

Contact me [Black Board Colab]

Programming In Python

 * Python for Data Analysis by Wes McKinney a good book for use of pandas which can be particularly useful in, at least mid-sized, data analysis. The book is from Published by O’Reilly Media, Inc., which is a great source of computer technology books, but often quite expensive.  This appears to be a free, legal, PDF: Python for Data Analysis (PDF)
 * Python for Data Analysis at Amazon Price especially used, not too bad.  But more than free above.
 * 10-minute tour of pandas from Wes McKinney A video tour.
 * Choosing R or Python for data analysis? An infographic Use Python or use R? Find out ( one opinion ).
 * A Complete Tutorial to Learn Data Science with Python from Scratch
 * (33) Sage Math On Facebook

Meta Python

 * Python Humor
 * The History of Python: import antigravity

= Business Problems in Python =

Business often seeks maximum profit, or minimum cost. Thus problems of optimization may be useful. Another area of interest is data analysis. It would be nice to have a matrix of math methods and the software that supports the method. In the way old days the software was just choosing the "best" language ( usually the one you knew ) and then going at it. Now days the language choice is greatly influenced not just but the characteristics of the language but also the packages that are already programed in much of the problem domain you need. It would be nice to have a chart of the problem domains and the software tools that might apply. I am working on this for Python, stay tuned.

Problem Domains and Python
for remote help remove

https://us.bbcollab.com/guest/BC92DC6A75D3993282C5D6A72A55051F

https://us.bbcollab.com/collab/ui/session/guest/01FC1DF76761CC5E978E0E3F3547E588

https://us.bbcollab.com/collab/ui/session/join/CA65F0260904C1FE0070E1CB063AB153