Originality and Attribution Statement
  • All notes, explanations, code examples, questions, answers and MCQs in this course are original material written for this course. Every code example was executed and its real output is shown.
  • The works below were consulted for facts and are cited on the lessons listed beside each entry, for attribution and further reading.
  • No text is reproduced from these sources beyond names of functions, methods, parameters and standard terms defined by the languages and libraries themselves.
  • Python is a trademark of the Python Software Foundation. NumPy, pandas, Google Colab, Jupyter and other names belong to their respective owners. Links lead to external websites not controlled by Ishaanvi InfoSoft.
Python Official Documentation
  1. Python Software Foundation. (n.d.). The Python Tutorial. Python 3 Documentation. https://docs.python.org/3/tutorial/index.html
  2. Python Software Foundation. (n.d.). Using the Python Interpreter. In The Python Tutorial. https://docs.python.org/3/tutorial/interpreter.html
    Cited in: Ch-1
  3. Python Software Foundation. (n.d.). An Informal Introduction to Python. In The Python Tutorial. https://docs.python.org/3/tutorial/introduction.html
    Cited in: Ch-1, Ch-2, Ch-3, Ch-8
  4. Python Software Foundation. (n.d.). More Control Flow Tools. In The Python Tutorial. https://docs.python.org/3/tutorial/controlflow.html
    Cited in: Ch-5, Ch-6, Ch-7
  5. Python Software Foundation. (n.d.). Data Structures. In The Python Tutorial. https://docs.python.org/3/tutorial/datastructures.html
    Cited in: Ch-8, Ch-9, Ch-10
  6. Python Software Foundation. (n.d.). Input and Output. In The Python Tutorial. https://docs.python.org/3/tutorial/inputoutput.html
    Cited in: Ch-4, Ch-11
  7. Python Software Foundation. (n.d.). Errors and Exceptions. In The Python Tutorial. https://docs.python.org/3/tutorial/errors.html
    Cited in: Prerequisite, Ch-4, Ch-11
  8. Python Software Foundation. (n.d.). Built-in Functions. The Python Standard Library. https://docs.python.org/3/library/functions.html
    Cited in: Ch-2, Ch-3, Ch-4, Ch-6, Ch-7, Ch-8, Ch-10, Ch-11
  9. Python Software Foundation. (n.d.). Built-in Types. The Python Standard Library. https://docs.python.org/3/library/stdtypes.html
    Cited in: Ch-2, Ch-3, Ch-4, Ch-5, Ch-6, Ch-8, Ch-9, Ch-10
  10. Python Software Foundation. (n.d.). Lexical Analysis. In The Python Language Reference. https://docs.python.org/3/reference/lexical_analysis.html
    Cited in: Ch-1
  11. Python Software Foundation. (n.d.). Data Model. In The Python Language Reference. https://docs.python.org/3/reference/datamodel.html
    Cited in: Ch-2, Ch-9
  12. Python Software Foundation. (n.d.). Expressions (including Operator Precedence). In The Python Language Reference. https://docs.python.org/3/reference/expressions.html
    Cited in: Ch-3
  13. Python Software Foundation. (n.d.). Compound Statements. In The Python Language Reference. https://docs.python.org/3/reference/compound_stmts.html
    Cited in: Ch-5, Ch-6
  14. Python Software Foundation. (n.d.). Execution Model (Naming and Binding). In The Python Language Reference. https://docs.python.org/3/reference/executionmodel.html
    Cited in: Ch-7
  15. Python Software Foundation. (n.d.). Glossary. Python 3 Documentation. https://docs.python.org/3/glossary.html
    Cited in: Prerequisite, Ch-7, Ch-9, Ch-10
  16. Python Software Foundation. (n.d.). General Python FAQ. Python 3 Documentation. https://docs.python.org/3/faq/general.html
    Cited in: Prerequisite, Ch-1
  17. Python Software Foundation. (n.d.). keyword — Testing for Python keywords. The Python Standard Library. https://docs.python.org/3/library/keyword.html
    Cited in: Ch-1
  18. Python Software Foundation. (n.d.). os — Miscellaneous operating system interfaces. The Python Standard Library. https://docs.python.org/3/library/os.html
    Cited in: Ch-11
  19. Python Software Foundation. (n.d.). csv — CSV File Reading and Writing. The Python Standard Library. https://docs.python.org/3/library/csv.html
    Cited in: Pandas-4
  20. Python Software Foundation. (2021). What’s New In Python 3.10 (structural pattern matching). https://docs.python.org/3/whatsnew/3.10.html
    Cited in: Ch-5
Python Enhancement Proposals (PEPs)
  1. van Rossum, G., Warsaw, B., & Coghlan, N. (2001). PEP 8 – Style Guide for Python Code. Python Enhancement Proposals. https://peps.python.org/pep-0008/
    Cited in: Ch-1, Ch-2
  2. Goodger, D., & van Rossum, G. (2001). PEP 257 – Docstring Conventions. Python Enhancement Proposals. https://peps.python.org/pep-0257/
    Cited in: Ch-1, Ch-7
  3. Smith, E. V. (2015). PEP 498 – Literal String Interpolation (f-strings). Python Enhancement Proposals. https://peps.python.org/pep-0498/
    Cited in: Ch-4
  4. Bucher, B., & van Rossum, G. (2020). PEP 634 – Structural Pattern Matching: Specification. Python Enhancement Proposals. https://peps.python.org/pep-0634/
    Cited in: Ch-5
  5. Kohn, D. F. (2020). PEP 636 – Structural Pattern Matching: Tutorial. Python Enhancement Proposals. https://peps.python.org/pep-0636/
    Cited in: Ch-5
  6. van Rossum, G., & Coghlan, N. (2005). PEP 343 – The “with” Statement. Python Enhancement Proposals. https://peps.python.org/pep-0343/
    Cited in: Ch-11
  7. Angelico, C., Peters, T., & van Rossum, G. (2018). PEP 572 – Assignment Expressions. Python Enhancement Proposals. https://peps.python.org/pep-0572/
Google Colab and Jupyter
  1. Google. (n.d.). Google Colaboratory – Frequently Asked Questions. https://research.google.com/colaboratory/faq.html
    Cited in: Ch-1, Ch-11
  2. Google Colaboratory. (n.d.). External data: Local Files, Drive, Sheets, and Cloud Storage (example notebook). https://colab.research.google.com/notebooks/io.ipynb
    Cited in: Ch-11, Pandas-4
  3. Project Jupyter. (n.d.). Jupyter Notebook Documentation. https://jupyter-notebook.readthedocs.io/
    Cited in: Ch-1
NumPy Documentation and Paper
  1. NumPy Developers. (n.d.). NumPy: the absolute basics for beginners. NumPy User Guide. https://numpy.org/doc/stable/user/absolute_beginners.html
    Cited in: NumPy-1, NumPy-2, NumPy-6, NumPy-7, NumPy-10, NumPy-11
  2. NumPy Developers. (n.d.). NumPy quickstart. NumPy User Guide. https://numpy.org/doc/stable/user/quickstart.html
    Cited in: NumPy-1, NumPy-2, NumPy-3, NumPy-4, NumPy-5, NumPy-6, NumPy-7, NumPy-8, NumPy-9, NumPy-10, NumPy-11
  3. NumPy Developers. (n.d.). Array creation. NumPy User Guide. https://numpy.org/doc/stable/user/basics.creation.html
    Cited in: NumPy-1
  4. NumPy Developers. (n.d.). Indexing on ndarrays. NumPy User Guide. https://numpy.org/doc/stable/user/basics.indexing.html
    Cited in: NumPy-2, NumPy-3, NumPy-9, NumPy-11
  5. NumPy Developers. (n.d.). Copies and views. NumPy User Guide. https://numpy.org/doc/stable/user/basics.copies.html
    Cited in: NumPy-3, NumPy-4, NumPy-5
  6. NumPy Developers. (n.d.). numpy.reshape. NumPy API Reference. https://numpy.org/doc/stable/reference/generated/numpy.reshape.html
    Cited in: NumPy-5
  7. NumPy Developers. (n.d.). Iterating over arrays. NumPy Reference. https://numpy.org/doc/stable/reference/arrays.nditer.html
    Cited in: NumPy-6
  8. NumPy Developers. (n.d.). Array manipulation routines (concatenate, stack, split …). NumPy API Reference. https://numpy.org/doc/stable/reference/routines.array-manipulation.html
    Cited in: NumPy-7, NumPy-8
  9. NumPy Developers. (n.d.). Sorting, searching, and counting. NumPy API Reference. https://numpy.org/doc/stable/reference/routines.sort.html
    Cited in: NumPy-9, NumPy-10
  10. NumPy Developers. (n.d.). numpy.where. NumPy API Reference. https://numpy.org/doc/stable/reference/generated/numpy.where.html
    Cited in: NumPy-9, NumPy-11
  11. NumPy Developers. (n.d.). The N-dimensional array (ndarray). NumPy Reference. https://numpy.org/doc/stable/reference/arrays.ndarray.html
    Cited in: NumPy-1, NumPy-4, NumPy-5
  12. Harris, C. R., Millman, K. J., van der Walt, S. J., et al. (2020). Array programming with NumPy. Nature, 585, 357–362. https://doi.org/10.1038/s41586-020-2649-2
    Cited in: NumPy-1, NumPy-6
pandas Documentation and Paper
  1. pandas development team. (n.d.). 10 minutes to pandas. pandas User Guide. https://pandas.pydata.org/docs/user_guide/10min.html
    Cited in: Pandas-1, Pandas-2, Pandas-3, Pandas-4
  2. pandas development team. (n.d.). Intro to data structures. pandas User Guide. https://pandas.pydata.org/docs/user_guide/dsintro.html
    Cited in: Pandas-1, Pandas-2, Pandas-3
  3. pandas development team. (n.d.). Indexing and selecting data. pandas User Guide. https://pandas.pydata.org/docs/user_guide/indexing.html
    Cited in: Pandas-2, Pandas-3
  4. pandas development team. (n.d.). IO tools (text, CSV, HDF5, …). pandas User Guide. https://pandas.pydata.org/docs/user_guide/io.html
    Cited in: Pandas-4
  5. pandas development team. (n.d.). Working with missing data. pandas User Guide. https://pandas.pydata.org/docs/user_guide/missing_data.html
    Cited in: Pandas-2, Pandas-4
  6. pandas development team. (n.d.). Installation. pandas Documentation. https://pandas.pydata.org/docs/getting_started/install.html
    Cited in: Pandas-1
  7. pandas development team. (n.d.). Getting started tutorials. pandas Documentation. https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html
    Cited in: Pandas-1, Pandas-3, Pandas-4
  8. McKinney, W. (2010). Data Structures for Statistical Computing in Python. In Proceedings of the 9th Python in Science Conference (pp. 56–61). https://doi.org/10.25080/Majora-92bf1922-00a
    Cited in: Pandas-1
Books and Standards
  1. Lutz, M. (2013). Learning Python (5th ed.). O’Reilly Media.
    Cited in: Ch-2, Ch-3, Ch-5, Ch-7, Ch-8, Ch-9, Ch-10
  2. Matthes, E. (2023). Python Crash Course (3rd ed.). No Starch Press.
    Cited in: Ch-2, Ch-4, Ch-6, Ch-8, Ch-10
  3. Downey, A. B. (2024). Think Python (3rd ed.). O’Reilly Media. (Free online edition by Green Tea Press.) https://allendowney.github.io/ThinkPython/
    Cited in: Prerequisite, Ch-3, Ch-6, Ch-7
  4. McKinney, W. (2022). Python for Data Analysis (3rd ed.). O’Reilly Media. (Open-access online edition.) https://wesmckinney.com/book/
    Cited in: NumPy-2, NumPy-3, Pandas-1, Pandas-2, Pandas-3, Pandas-4
  5. VanderPlas, J. (2016). Python Data Science Handbook. O’Reilly Media. (Free online edition.) https://jakevdp.github.io/PythonDataScienceHandbook/
    Cited in: NumPy-1, NumPy-2, NumPy-3, NumPy-4, NumPy-5, NumPy-6, NumPy-7, NumPy-8, NumPy-9, NumPy-10, NumPy-11
  6. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to Algorithms (4th ed.). MIT Press.
    Cited in: Prerequisite
  7. Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools (2nd ed.). Pearson.
    Cited in: Prerequisite
  8. International Organization for Standardization. (1985). ISO 5807: Information processing – Documentation symbols and conventions for data, program and system flowcharts. https://www.iso.org/standard/11955.html
    Cited in: Prerequisite