2023-11-16 17:42:39 +01:00
# How to Python in computational neuroscience, data mining, and more
2023-12-02 20:26:58 +01:00
{:.no_toc}
2023-12-04 01:20:55 +01:00
< nav markdown = "1" class = "toc-class" >
2023-12-02 20:26:58 +01:00
* TOC
{:toc}
2023-12-04 01:20:55 +01:00
< / nav >
2023-11-16 17:37:23 +01:00
2023-11-17 17:47:28 +01:00
All the tutorials are tested with Python 3.11.x. Older version might have a problem with the new versions of type anotations.
2023-11-17 17:47:16 +01:00
2023-12-12 15:28:07 +01:00
## Flow chart
2024-01-17 09:44:02 +01:00
* [Basic Structure of a Computer ](matlab/1/README.md )
* [Representation of Numbers in the Computer ](matlab/2/README.md )
2024-01-17 16:09:56 +01:00
* [Systematic Programming ](matlab/5/README.md )
2023-12-12 15:28:07 +01:00
* [Flow chart symbols ](flow/overview/README.md )
2023-12-12 17:05:27 +01:00
* [Examples ](flow/examples/README.md )
2023-12-12 17:41:07 +01:00
* [Flow chart for baking bread ](flow/baking_bread/README.md )
2023-12-12 15:28:07 +01:00
2023-12-07 21:13:55 +01:00
## Workflow
* [Python installation ](workflow/python_pure/README.md )
2023-12-07 22:02:11 +01:00
* [VS Code installation ](workflow/vscode_install/README.md )
2023-12-07 23:29:18 +01:00
* [VS Code configuration ](workflow/vscode_config/README.md )
2023-12-13 17:22:29 +01:00
* [VS Code Microsoft Tutorials ](workflow/microsoft_tutorials/README.md )
2023-12-13 17:58:28 +01:00
* [VS Code Python Interactive window ](workflow/vscode_interactive/README.md )
2023-12-13 01:07:03 +01:00
* [VS Code Markdown ](workflow/vscode_markdown/README.md )
2023-12-16 13:59:39 +01:00
* [VS Code Debugging ](workflow/vscode_debug/README.md )
2024-01-03 20:07:44 +01:00
* [VS Code Working remotely via ssh ](workflow/vscode_ssh/README.md )
2023-12-07 23:29:18 +01:00
2023-12-13 17:56:56 +01:00
Important VS Code notes:
* You can mark segments of source node with your mouse (or keyboard) and use the TAB key to increase the level of the indentation or use SHIFT + TAB do decrease the indentation level.
2023-12-22 14:06:38 +01:00
* Linux: CTRL + SHIFT + 7 toggles between comment and normal source code.
2023-12-13 17:56:56 +01:00
* The function key F2 allows you to change variable and function names. VS Code goes through all the node in your Project directory and changes all occurrences of the function or variable name accordingly. The same is true if you change a file name in a project directory.
2023-12-07 21:13:55 +01:00
2023-12-02 01:50:57 +01:00
## Python: The Basics of the basics
2023-12-08 15:22:21 +01:00
* [Overview ](python_basics/where_to_start/README.md )
2023-12-06 19:47:30 +01:00
* [Hello, Python ](python_basics/hello_python/README.md )
2023-12-29 17:03:41 +01:00
- [input, print, string, int, float ](python_basics/input_output_string_int_float/README.md )
2023-12-05 14:25:02 +01:00
* [Style Rulez ](python_basics/style_rulez/README.md )
2023-12-05 14:22:39 +01:00
* [Programming Recommendations ](python_basics/programming_recommendations/README.md )
2023-12-29 15:25:31 +01:00
- [Assert ](python_basics/assert/README.md )
2023-12-05 18:56:33 +01:00
* [Basic Math Operations ](python_basics/basic_math_operations/README.md )
2023-12-05 10:04:13 +01:00
* [Truth Value Testing ](python_basics/truth_value_testing/README.md )
2023-12-05 10:43:01 +01:00
* [Formatted String Literals ](python_basics/formatted_string_literals/README.md )
2023-12-06 21:21:15 +01:00
* [Flow Control Overview ](python_basics/flow_control_overview/README.md )
2023-12-06 23:33:01 +01:00
- [Flow Control: if, elif, else ](python_basics/if/README.md )
2023-12-07 17:48:36 +01:00
- [Flow Control: for-loop ](python_basics/for/README.md )
2023-12-07 00:03:11 +01:00
- [Flow Control: while, pass, break, continue ](python_basics/while/README.md )
2023-12-06 23:33:01 +01:00
- [Flow Control: match case ](python_basics/match/README.md )
2023-12-11 18:35:01 +01:00
* Sequence Types
- [Lists ](python_basics/list/README.md )
2023-12-30 20:18:14 +01:00
+ [List Comprehensions ](python_basics/list_comprehensions/README.md )
2023-12-12 19:58:52 +01:00
- [Tuple ](python_basics/tuple/README.md )
2023-12-30 16:47:11 +01:00
+ [zip ](python_basics/zip/README.md )
2023-12-12 22:48:46 +01:00
* Mapping Types
- [Dict ](python_basics/dict/README.md )
2023-12-13 15:45:58 +01:00
* [Functions ](python_basics/functions/README.md )
2023-12-13 11:43:58 +01:00
* [Type annotations ](python_basics/python_typing/README.md )
2023-12-05 15:42:05 +01:00
* [Files ](python_basics/files/README.md )
2023-12-12 23:15:39 +01:00
* [JSON and dict for parameter files ](python_basics/json/README.md )
2023-12-05 17:24:52 +01:00
* [Creating order via sub-directories: os.makedirs ](python_basics/os_makedirs/README.md )
* [Finding files in a directory: glob ](python_basics/glob/README.md )
2023-12-05 17:45:14 +01:00
* [Class ](python_basics/class/README.md )
2023-12-07 00:08:37 +01:00
* [Exceptions (try / except) ](python_basics/exceptions/README.md )
2023-12-14 01:01:02 +01:00
* [Importing Modules ](python_basics/modules/README.md )
2023-12-13 20:39:39 +01:00
* [Built-in Functions ](python_basics/built_in/README.md )
2023-12-22 15:10:48 +01:00
* [Built-in Keywords ](python_basics/keywords/README.md )
2023-12-27 15:37:18 +01:00
## Python: Special topics
2023-12-28 17:03:05 +01:00
* [pickle: save and load Python objects ](python_basics/pickle/README.md )
2023-12-11 12:30:22 +01:00
* [The Python Standard Library ](python_basics/standard_libraries/README.md )
2023-12-19 00:00:58 +01:00
* [Dataclass ](python_basics/dataclass/README.md )
2023-12-28 02:00:33 +01:00
* [Organizing parameters: dataclasses and dataconf ](python_basics/dataconf/README.md )
2023-12-28 14:42:17 +01:00
* [ProcessPoolExecutor: A fast way to implement multiprocessing ](python_basics/ProcessPoolExecutor/README.md )
2023-12-29 02:31:04 +01:00
* [Logging ](python_basics/logger/README.md )
2023-12-29 17:20:07 +01:00
* [Python Scopes and Namespaces ](python_basics/namespaces/README.md )
2023-12-30 20:16:30 +01:00
* [Collection of distinct hashable objects -- set and frozenset ](python_basics/set_frozenset/README.md )
2023-12-27 15:37:18 +01:00
2023-12-13 15:58:31 +01:00
## Numpy: The Basics of the basics
2023-12-19 11:20:13 +01:00
* [The N-dimensional array (ndarray) ](numpy/ndarray/README.md )
2023-12-30 16:55:52 +01:00
- [set_printoptions ](numpy/set_printoptions/README.md )
2023-12-19 11:20:13 +01:00
* [Dimensions and shape ](numpy/dimensions/README.md )
2023-12-27 16:51:46 +01:00
- [Broadcasting: Automatic adaption of dimensions ](numpy/broadcasting/README.md )
2023-12-30 01:48:24 +01:00
* [Making a matrix from numerical ranges ](numpy/numerical_ranges /README.md )
* [Convert other data into numpy arrays e.g. asarray ](numpy/convert_into_ndarray/README.md )
2023-12-13 16:32:06 +01:00
* [New matrix ](numpy/new_matrix/README.md )
2023-12-19 11:38:31 +01:00
* [Save and load ](numpy/load_save/README.md )
2023-12-14 14:56:24 +01:00
* [Reshape and flatten ](numpy/reshape/README.md )
2023-12-14 17:43:21 +01:00
* [Slices and Views ](numpy/slices_views/README.md )
2023-12-29 18:44:20 +01:00
* [Concatenate Matrices and arrays ](numpy/concatenate/README.md )
2023-12-30 17:34:56 +01:00
* [Merging matrices ](numpy/merging/README.md )
2023-12-29 19:11:14 +01:00
* [Unique ](numpy/unique/README.md )
2023-12-14 15:21:26 +01:00
* [Where ](numpy/where/README.md )
2023-12-30 19:35:23 +01:00
- [Piecewise ](numpy/piecewise /README.md )
2023-12-28 16:14:52 +01:00
* [Extending an existing matrix: tile, repeat, pad ](numpy/extending/README.md )
2023-12-14 16:07:44 +01:00
* [Boolean matricies and logic functions ](numpy/bool_matrix/README.md )
2023-12-14 18:35:19 +01:00
* [Advanced Indexing ](numpy/advanced_indexing/README.md )
2023-12-30 19:24:24 +01:00
- [Ravel and UnRavel ](numpy/ravel_unravel/README.md )
2023-12-13 17:15:48 +01:00
* [Available dtypes ](numpy/dtype/README.md )
2023-12-13 16:48:48 +01:00
* [Constants ](numpy/constants/README.md )
2023-12-13 19:52:54 +01:00
* [Math functions ](numpy/math_functions/README.md )
2023-12-14 21:36:41 +01:00
* [Linear algebra ](numpy/linear_alg/README.md )
2023-12-13 16:32:06 +01:00
* [Random numbers the non-legacy way ](numpy/random/README.md )
2023-12-13 21:01:06 +01:00
* [Statistics ](numpy/statistics/README.md )
2023-12-15 14:41:18 +01:00
* [FFT ](numpy/fft/README.md )
2023-12-15 14:41:37 +01:00
- [rfft and spectral power ](numpy/numpy_fft_1/README.md )
2024-02-15 10:54:50 +01:00
- [Spectral power and averaging over trials ](numpy/power_mean/README.md )
2023-12-19 12:24:51 +01:00
* [Meshgrid ](numpy/mesh_grid/README.md )
2023-12-22 15:38:33 +01:00
* [Flip, rot90, and roll a matrix ](numpy/reverse_an_axis/README.md )
2023-12-30 17:01:45 +01:00
* Iterate
- [ndenumerate ](numpy/ndenumerate/README.md )
2023-12-30 17:05:52 +01:00
- [ndindex ](numpy/ndindex/README.md )
2023-12-30 17:20:46 +01:00
- [flat ](numpy/flat/README.md )
2023-12-15 12:32:47 +01:00
2023-12-27 15:37:18 +01:00
## Numpy: Special topics
2024-01-02 17:40:33 +01:00
* [Einstein summation ](numpy/einstein/README.md )
2023-12-30 19:11:19 +01:00
* [Numba: Numpy just in time compiler -- speeding Numpy up ](numpy/numba/README.md )
2023-12-28 17:46:08 +01:00
* [Memory layout of Numpy matrices ](numpy/layout/README.md )
2023-12-29 18:07:44 +01:00
* [Stack and Split, Compress ](numpy/stack_split/README.md )
2023-12-27 15:40:48 +01:00
* [Beyond normal np.save ](numpy/save_special/README.md )
2023-12-30 17:12:19 +01:00
* [Trim Zeros of a 1d array ](numpy/trim_zeros/README.md )
2023-12-30 01:20:26 +01:00
* Iterating over an array / matrix
- [nditer provides many ways to visit all the elements of one or more arrays ](numpy/nditer/README.md )
- [Replacing an inner for loop with apply_along_axis ](numpy/iterating/README.md )
2023-12-30 19:49:31 +01:00
- [nested_iters ](numpy/nested_iters/README.md )
2023-12-27 16:11:33 +01:00
* [Manipulation of integers and their bits ](numpy/bits_and_integers /README.md )
2023-12-29 14:54:26 +01:00
* [Numpy <-> JSON over Pandas ](numpy/JSON/README.md )
2023-12-30 18:44:35 +01:00
* [Resize: Compensation for bad planning? Don't! ](numpy/resize/README.md )
2023-12-30 19:11:19 +01:00
* [Dealing with the main diagonal / triangles of a matrix ](numpy/diagonal_triangles/README.md )
2023-12-27 15:37:18 +01:00
2023-12-27 15:40:48 +01:00
## Numpy: Matlab topics
* [Dealing with Matlab files ](numpy/mat_files/README.md )
* [Matlab is also just a Python package ](matlab/matlab_as_a_python_pakage/README.md )
* [Running Python remotely from Matlab ](matlab/python_used_by_matlab/README.md )
In the case you know Matlab check here:
[NumPy for MATLAB users ](numpy/matlab_guide/README.md )
2023-12-14 11:38:25 +01:00
## Matplotlib.pyplot
2023-12-14 11:39:35 +01:00
* [Simple plot and imshow examples ](matplotlib/basics/README.md )
2023-12-22 15:58:13 +01:00
* [Subplot ](matplotlib/subplot/README.md )
2024-01-02 16:24:51 +01:00
* [subplots and gridspec: A more flexible placement ](matplotlib/subplots/README.md )
2023-12-14 11:38:25 +01:00
* [Overview of the available functions ](matplotlib/overview/README.md )
2023-12-21 16:12:29 +01:00
* [Animation and Slider ](matplotlib/animation_and_slider/README.md )
2023-12-14 11:38:25 +01:00
2023-12-18 14:38:28 +01:00
## Pandas
* [Basics ](pandas/basics/README.md )
2024-01-26 15:14:59 +01:00
## Sci-kit Learn
2023-12-16 15:40:07 +01:00
* [Overview ](scikit-learn/overview/README.md )
2023-12-19 14:40:24 +01:00
* [KMeans ](scikit-learn/kmeans/README.md )
2023-12-19 15:34:02 +01:00
* [PCA ](scikit-learn/pca/README.md )
2023-12-19 15:57:49 +01:00
* [FastICA ](scikit-learn/fast_ica/README.md )
2024-01-26 15:14:59 +01:00
* [ROC (pure numpy) ](numpy/roc/README.md )
2024-02-07 15:37:05 +01:00
* [Support Vector Machine ](scikit-learn/svm/README.md )
* [K Nearest Neighbours (pure numpy) ](numpy/knn/README.md )
2023-12-16 15:40:07 +01:00
2023-12-19 16:08:34 +01:00
## SciPy
2024-02-16 09:31:50 +01:00
* [Remove a common signal from your data with SVD ](scipy/SVD_data_cleaning/README.md )
2023-12-19 16:11:30 +01:00
* [scipy.signal: Butterworth low, high and band-pass ](scipy/scipy.signal_butterworth/README.md )
2023-12-01 18:18:23 +01:00
2023-12-02 01:52:51 +01:00
## Python: Questions of spectral nature
2023-12-01 18:18:23 +01:00
* [PyWavelets: Wavelet Transforms in Python ](pywavelet/README.md )
2024-02-15 17:29:06 +01:00
* [Instantanious Spectral Coherence ](data_analysis/spectral_coherence/README.md )
2023-11-16 17:37:23 +01:00
2023-12-01 21:32:08 +01:00
2023-12-02 01:52:51 +01:00
## Python: Daily little helper
2023-12-13 01:29:56 +01:00
* [TQDM: Make your progress visible ](helper/TQDM/README.md )
* [Argh: Organize your command line arguments ](helper/argh/README.md )
2023-12-28 14:31:01 +01:00
* [psutil vs os.cpu_count: How many "CPUs" do I have? ](helper/psutil/README.md )
2023-12-28 15:06:27 +01:00
* [ZeroMQ: Microservices as well as connecting computers via message queue ](helper/ZeroMQ/README.md )
2024-01-03 17:40:13 +01:00
* [Austin: Time and memory profiling ](helper/austin/README.md )
2023-12-13 01:29:56 +01:00
2023-12-15 14:55:55 +01:00
## OpenCV2 and Python
2023-12-27 17:47:43 +01:00
* [OpenCV2: Play, write, read a video ](cv2/write_read_play/README.md )
2023-12-15 14:55:55 +01:00
* [How to read a webcam with CV2 ](cv2/webcam/README.md )
2023-12-01 21:32:08 +01:00
2023-12-06 00:22:24 +01:00
## PyTorch
2023-12-08 14:44:56 +01:00
* [Get CUDA ready! ](pytorch/cuda/README.md )
2024-01-02 22:15:05 +01:00
* [Converting the original MNIST files into numpy ](pytorch/MNIST/README.md )
2023-12-22 14:40:46 +01:00
* [Interfacing Data ](pytorch/interfacing_data/README.md )
2023-12-16 19:56:29 +01:00
* [Data augmentation ](pytorch/augmentation/README.md )
2023-12-06 00:22:24 +01:00
* [Layers ](pytorch/layers/README.md )
2024-01-02 20:41:34 +01:00
* [Creating networks ](pytorch/networks/README.md )
2024-01-02 22:15:05 +01:00
* [Train the network ](pytorch/train/README.md )
2024-01-05 14:35:34 +01:00
* [Fisher Exact Test: Test if your performance difference is significant ](scipy/scipy.stats.fisher_exact/README.md )
2024-01-05 15:41:09 +01:00
* [Write your own layer ](pytorch/own_layer/README.md )
2024-01-05 16:50:02 +01:00
- [Replace the automatic autograd with your own torch.autograd.Function ](pytorch/replace_autograd/README.md )
2023-12-15 20:32:41 +01:00
* [How to take advantage of an optimizer for your non-Pytorch project ](pytorch/optimizer_special/README.md )
2023-12-15 20:37:32 +01:00
* [How to take advantage of a learning rate scheduler for your non-Pytorch project ](pytorch/scheduler_special/README.md )
2023-12-29 02:07:25 +01:00
* [Unfold: How to manually calculate the indices for a sliding 2d window ](pytorch/Unfold/README.md )
2023-12-06 00:22:24 +01:00
2024-01-03 15:14:15 +01:00
## PyBind11
* [Expanding Python with C++ modules ](PyBind11/basics/README.md )
2024-01-03 17:12:05 +01:00
* [The fast and furious way (CPU and GPU CUDA) ](PyBind11/direct/README.md )
2024-01-03 15:19:39 +01:00
* [PyBind11 Stub-Generation ](PyBind11/stubs/README.md )
2024-01-03 19:43:48 +01:00
2024-01-03 21:04:01 +01:00
## Tensorflow / Keras
* [A fast non-introduction ](tensorflow/intro/README.md )
2024-01-03 19:43:48 +01:00
## Sympy
* [Symbolic Computation ](sympy/intro/README.md )
2024-01-17 09:44:02 +01:00
2024-01-17 16:19:48 +01:00
## Numerical Integration, Differentiation, and Differential Equations
2024-01-26 15:42:33 +01:00
* [Integration and Differentiation ](numpy/7/README.md )
* [Differential Equations ](numpy/8/README.md )
2024-01-17 09:44:02 +01:00
2023-12-16 18:54:56 +01:00
## Arduino
* [Basics with Python / Matlab ](arduino/basics/README.md )
2023-12-02 01:52:51 +01:00
## Matlab: Basics
2023-12-16 03:39:04 +01:00
{: .topic-optional}
This pages are in a rough state. e.g. equations are broken. Don't know why...
2023-12-16 02:03:13 +01:00
* [Basic Commands and Variables ](matlab/3/README.md )
2023-12-16 02:30:13 +01:00
* [Graphics ](matlab/4/README.md )
2023-12-16 03:06:25 +01:00
* [Vectorization and Vector Calculus in Matlab ](matlab/6/README.md )
2023-12-16 01:37:26 +01:00
* [Data Analysis ](matlab/9/README.md )
2023-12-01 15:18:45 +01:00
2023-12-27 17:14:28 +01:00
## Other topics
* [Open Source Tools ](other/open_source_tools/README.md )
2023-12-28 14:23:01 +01:00
* [Machine Learning Resources ](other/ml_resources/README.md )
* [Datasets ](other/datasets/README.md )
2023-12-27 17:14:28 +01:00
2024-02-16 14:50:46 +01:00
## S1: Advanced Programming (last update 16.02.2024)
2024-02-16 14:47:57 +01:00
2024-02-16 14:50:46 +01:00
* Neuron Models Equations
2024-02-16 14:54:48 +01:00
- [DivInE-model for MT neurons ](advanced_programming/DivInE/README.md )
2024-02-16 14:59:24 +01:00
- [Leaky Integrate-and-Fire ](advanced_programming/leaky_integrate_and_fire/README.md )
2024-02-16 14:47:57 +01:00
- [Connor Stevens ](advanced_programming/connor_stevens/README.md )
2023-12-16 03:39:04 +01:00