The Prickly Pythons

Python users and learners at Arizona State University

Welcome

The Prickly Pythons is a group of ASU scientists, from undergrad to professor level, disscussing and sharing codes and ideas about Python and scientific programming in general. It initially began as a group of Python-enthusiasts within the School of Earth and Space Exploration (SESE) but has now flourished into an ASU-wide community. Our aim is to help each other learn more and to raise awareness of scientific computing throughout ASU. Every member is encouraged to utilize this platform to help in moving the ASU programming community forward!

You can find the link to our GitHub repository on the left-hand panel of this page. Feel free to join. If you do not have a GitHub account, please follow this link to make one.

Also check out the DesertPy group that has weekly meetings: DesertPy, and the "hands-on seminars" occassionally held at ASU research computing.

Next Meeting!!

Stuff that happened during past meetings:

<-- Cookie supplies and intro to Python Jan 23 2018.

<-- Halloween chocolates at our meeting on Oct 30 2017.

<-- A proof that we now have coffee.

<-- Talking about curve fitting with scipy.

<-- Coconut buns and pandas dataframes go well together.

Calendar Fall 2018

Date Topic(s) Links
08/31 Getting started! Baby python. Software testing. Good scientific programming practices. See summary of the meeting here and code presented at the meeting here.
09/07 Reading and analyzing data Character encodings and reading in data.

See summary of the meeting here and code presented at the meeting here.
09/21 Reading and analyzing data II - Multi-dimensional arrays. Indexing, slicing and visualizing numpy arrays.

See summary of the meeting here and code presented at the meeting here.
09/28 Fourier transforms. Transforming various signals and seeing what can be learnt.

See summary of the meeting here and code presented at the meeting here.
10/05 Graphs and networks. Edges, verticies and such.

See summary of the meeting here and code presented at the meeting here.
10/12 Eigen, singular-value analysis. Eigenvalue and singluar value decompositions.

See summary of the meeting here and code presented at the meeting here.
10/19 Monte Carlo methods I. Random numbers and the basics.

See summary of the meeting here and code presented at the meeting here.
10/26 Monte Carlo methods II. Importance sampling.

See summary of the meeting here and code presented at the meeting here.
11/2 Monte Carlo methods III. Metropolis-Hastings.

See summary of the meeting here and code presented at the meeting here.
11/16 Integration. Numerical integration methods.

See summary of the meeting here and code presented at the meeting here.
11/30 Percolation. Coffees and phase transitions.

See summary of the meeting here and code presented at the meeting here.

Calendar Spring 2018

Date Topic(s) Links
01/23 (Tue 2-3pm) Getting started! Installing python and some baby-python. See summary of the meeting here and code (in jupyter notebook format and pdf) presented at the meeting here.
02/06 (Tue 2-3pm) Datasets I: Structuring your data

Reading and writing (large) datasets, using numpy and the pandas library.

See summary of the meeting here and code presented at the meeting here.
02/12 (Mon 4-5pm) Datasets II: Analyzing your data We'll talk about fitting functions to data, visualization in 2D/3D/nD, dimensional reduction using PCA or SVD.

See summary of the meeting here and code presented at the meeting here and here.
02/20 (Tue 2-3pm) Datasets III: Analyzing your data continued More data visualization and analysis techniques, custom plots, 3D isovalue surface.

See summary of the meeting here and code presented at the meeting here.
02/26 (Mon 4-5pm) GIS day Introduction to GIS, existing GIS software, basemap module from the matplotlib library, QGIS (an open source version of GIS), and potentially writing Python scripts to automate its usage.

See summary of the meeting here, powerpoint slides here, and code presented at the meeting here.
03/06 (Tue 2-3pm) Machine Learning Day What is machine learning? Classification, neural networks, implications of AI.

See summary of the meeting here and code presented during the meeting here.
03/12 (Mon 4-5pm) Cancelled due to Spring Break the week before
03/20 (Tue 2-3pm) Need-for-Speed Day Sub-processes, parallel computing, using GPUs, using high performance platforms like Saguaro, tips and tricks for speeding up your code.

See summary of the meeting here and code presented during the meeting here.
04/02 (Mon 4-5pm) Physics with Python Day Solving differential and intergral equations, dynamical systems, applications to biology, quantum computing with Python.

See summary of the meeting here and code presented during the meeting here.
04/10 (Tue 2-3pm) Connecting to the real world Simulating astronomical observations, signal processing, fast FT, microcontrollers, real-time data.

See summary of the meeting here and code presented during the meeting here.
04/16 (Mon 4-5pm) Statistics with Python Bayesian methods, hypothesis testing, crowd wisdom.

See summary of the meeting here and code presented during the meeting here.
04/24 (Tue 2-3pm) Researchers Medley Day Brief examples from researchers at ASU of how they use Python for their work (15-12min each).
06/19 (Tue 2-3pm) Extra summer meeting! Markov chains and MPI.

Calendar Fall 2017

Date Topic(s) Links
08/28 Getting started! Installing python and some baby-python See summary of the meeting here and code (in jupyter notebook format) presented at the meeting here.
9/11 A day with if, else and for! See summary of the meeting here and code (in jupyter notebook format) presented at the meeting here.
9/25 Functions! Including fitting a function to data. See summary of the meeting here and code (mostly in jupyter notebook format) presented at the meeting on functions here and on fitting here.
10/16 Structuring data (using pandas and other modules). See summary of the meeting here and code presented at the meeting here.
10/30 Using python code of someone else (e.g. cloning a Git repository) and making it work. See summary of the meeting here and code presented during the meeting here.
11/13 SQL and working with large databases. See summary of the meeting here and code presented during the meeting here.
11/28 Programming on GPUs! PyOpenCL and passing data to GPUs See summary of the meeting here and code presented during the meeting here.
12/11 Statistics in python See summary of the meeting here and code presented during the meeting on ANOVA (=analysis of variance) here and on using classifications here.

The GitHub Repository

GitHub is an online host for Git version control repositories, built to allow collaborative sharing, versioning, and issue tracking for codes and other documents.

We incorporate GitHub as a main tool for our platform. Our main repository is a place for members to share codes and documents and initiate discussion. Members are encourage to share code templates, examples and tutorials by pushing to the repository. In addition, members can ask questions, make requests and give suggestions to the group by using GitHub issue tracking functionality.

Gitter Chat Room

In the past, we had a chatroom on Gitter for members to chat and ask questions in realtime. It's not used so much now but the Gitter chatroom is linked to this repository. It uses your GitHub account as a log-in, no information will be sent to Gitter, and it allow GitHub Flavor Markdown for codes parsing and the use of @mention. There is a Gitter app available on most operating systems.

Using the Repository

Sharing Your Stuff

Every team members should be able to push/pull (write/read) to the repository. To push/pull, first you have to install git. Then, you have to clone (download) the prickly-pythons repository. On your favorite command line program, go to the directory that you would like to contain the clone of the repository and type,

git clone https://github.com/prickly-pythons/prickly-pythons.git

The prickly-pythons directory is your "local" copy of the group repository. You can do the following to your local reposity.

Note that you might have to pull first before you can push, just as you might have to commit your changes before you can pull.

Asking Questions via Issue Tracking

If you have any specific questions or information to share, that can be done with the 'Issue' tracking option on GitHub: https://github.com/prickly-pythons/prickly-pythons/issues. Open a new issue and label it (e.g.). The default setting is to recieve an email for each new post, but you can unsubscribe on the above site.

Group Admins

Karen Olsen (@kpolsen)