Both sides previous revisionPrevious revisionNext revision | Previous revision |
other:python:jyp_steps [2024/08/27 14:51] – Moved the PyFormat ref to the "Misc" page jypeter | other:python:jyp_steps [2025/02/26 11:40] (current) – [Extra numpy information] Added more links for indexing jypeter |
---|
==== Part 2 ==== | ==== Part 2 ==== |
| |
Once you have done your first steps, you should read [[http://www.lsce.ipsl.fr/Phocea/file.php?class=page&file=5/pythonCDAT_jyp_1sur2_070227.pdf|Plus loin avec Python]] (start at page 39, the previous pages are an old version of what was covered in //Part 1// above) | Once you have done your first steps, you should read {{:other:python:pythoncdat_jyp_1sur2_070227.pdf|Plus loin avec Python}} (start at page 39, the previous pages are an old version of what was covered in //Part 1// above) |
* this tutorial is in French (sorry again) | * this tutorial is in French (sorry again) |
* after reading this tutorial, you will be able to do more than you can do in a shell script, in an easier way | * after reading this tutorial, you will be able to do more than you can do in a shell script, in an easier way |
* calling external programs | * calling external programs |
| |
| You can also look at the [[other:python:misc_by_jyp|Useful python stuff]] page |
===== The official python documentation ===== | ===== The official python documentation ===== |
| |
* {{ :other:python:indirect_indexing_2.py.txt |}}: Take a vertical slice in a 3D zyx array, along a varying y 'path' | * {{ :other:python:indirect_indexing_2.py.txt |}}: Take a vertical slice in a 3D zyx array, along a varying y 'path' |
* [[https://numpy.org/doc/stable/user/basics.indexing.html|Array indexing basics (user guide)]] (//index arrays//, //boolean index arrays//, //np.newaxis//, //Ellipsis//, //variable numbers of indices//, ...) | * [[https://numpy.org/doc/stable/user/basics.indexing.html|Array indexing basics (user guide)]] (//index arrays//, //boolean index arrays//, //np.newaxis//, //Ellipsis//, //variable numbers of indices//, ...) |
| * [[https://numpy.org/doc/stable/user/basics.indexing.html#dealing-with-variable-numbers-of-indices-within-programs|Dealing with variable numbers of indices within programs]] |
| * [[https://numpy.org/doc/stable/user/basics.indexing.html#field-access|Field access]] |
| * [[https://numpy.org/doc/stable/user/basics.rec.html#indexing-and-assignment-to-structured-arrays|Indexing and assignment to structured arrays]] |
* [[https://numpy.org/doc/stable/reference/arrays.indexing.html|Indexing routines (reference manual)]] | * [[https://numpy.org/doc/stable/reference/arrays.indexing.html|Indexing routines (reference manual)]] |
* [[https://numpy.org/doc/stable/user/quickstart.html#advanced-indexing-and-index-tricks|Advanced indexing and index tricks]] and [[https://numpy.org/doc/stable/user/quickstart.html#the-ix-function|the ix_() function]] | * [[https://numpy.org/doc/stable/user/quickstart.html#advanced-indexing-and-index-tricks|Advanced indexing and index tricks]] and [[https://numpy.org/doc/stable/user/quickstart.html#the-ix-function|the ix_() function]] |
| |
<note important> | <note important> |
* ''cdms2'' is unfortunately not maintained anymore and is slowly being **phased out in favor of a combination of [[#xarray|xarray]] and [[https://xcdat.readthedocs.io/|xCDAT]]** | * ''cdms2'' is unfortunately not maintained anymore and has been slowly **phased out in favor of a combination of [[#xarray|xarray]] and [[https://xcdat.readthedocs.io/|xCDAT]]** |
| |
* ''cdms2'' will [[https://github.com/CDAT/cdms/issues/449|not be compatible with numpy after numpy 1.23.5]] :-( | * ''cdms2'' is [[https://github.com/CDAT/cdms/issues/449|not compatible with numpy after numpy 1.23.5]] :-( |
</note> | </note> |
| |
| |
How to get started: | How to get started: |
- read [[http://www.lsce.ipsl.fr/Phocea/file.php?class=page&file=5/pythonCDAT_jyp_2sur2_070306.pdf|JYP's cdms tutorial]], starting at page 54 | - read {{:other:python:pythoncdat_jyp_2sur2_070306.pdf|JYP's cdms tutorial}}, starting at page 54 |
- the tutorial is in French (soooorry!) | - the tutorial is in French (soooorry!) |
- you have to replace //cdms// with **cdms2**, and //MV// with **MV2** (sooorry about that, the tutorial was written when CDAT was based on //Numeric// instead of //numpy// to handle array data) | - you have to replace //cdms// with **cdms2**, and //MV// with **MV2** (sooorry about that, the tutorial was written when CDAT was based on //Numeric// instead of //numpy// to handle array data) |