root: index
title: "Awkward Array"

defaults:
  titlesonly: True

subtrees:
  - entries:
      - file: getting-started/index
        subtrees:
          - entries:
              - file: getting-started/what-is-an-awkward-array
              - file: getting-started/10-minutes-to-awkward-array
              - file: getting-started/uproot-awkward-columnar-hats
              - file: getting-started/jagged-ragged-awkward-arrays
              - file: getting-started/thinking-in-arrays
              - file: getting-started/papers-and-talks
      - file: user-guide/index
        subtrees:
          - entries:
              - file: user-guide/how-to-convert
                title: "Converting arrays"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-convert-numpy
                        title: "NumPy"
                      - file: user-guide/how-to-convert-python
                        title: "Python objects"
                      - file: user-guide/how-to-convert-json
                        title: "JSON"
                      - file: user-guide/how-to-convert-arrow
                        title: "Arrow and Parquet"
                      - file: user-guide/how-to-convert-pandas
                        title: "Pandas"
                      - file: user-guide/how-to-convert-buffers
                        title: "Generic buffers"
                      - url: https://uproot.readthedocs.io/en/latest/basic.html#reading-a-tbranch-as-an-array
                        title: "ROOT via Uproot"
                      - file: user-guide/how-to-convert-rdataframe
                        title: "ROOT via RDataFrame"

              - file: user-guide/how-to-create
                title: "Creating new arrays"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-create-lists
                        title: "Arrays of lists"
                      - file: user-guide/how-to-create-records
                        title: "Arrays of records"
                      - file: user-guide/how-to-create-missing
                        title: "Arrays of missing data"
                      - file: user-guide/how-to-create-strings
                        title: "Arrays of strings"
                      - file: user-guide/how-to-create-unflatten-group
                        title: "Unflattening and grouping"
                      - file: user-guide/how-to-create-arraybuilder
                        title: "ArrayBuilder (easy & general)"
                      - file: user-guide/how-to-create-constructors
                        title: "Direct constructors (fastest)"

              - file: user-guide/how-to-examine
                title: "Examining arrays"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-examine-type
                        title: "Data type"
                      - file: user-guide/how-to-examine-single-item
                        title: "Single item detail"
                      - file: user-guide/how-to-examine-list-fields
                        title: "Listing fields/keys/columns"
                      - file: user-guide/how-to-examine-simple-slicing
                        title: "Simple slicing"
                      - file: user-guide/how-to-examine-checking-validity
                        title: "Checking validity"

              - file: user-guide/how-to-array-properties
                title: "Array properties"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-array-properties-named-axis
                        title: "Named axes"

              - file: user-guide/how-to-math
                title: "Numerical math"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-math-numpy
                        title: "NumPy functions"
                      - file: user-guide/how-to-math-broadcasting
                        title: "Awkward broadcasting"
                      - file: user-guide/how-to-math-reducing
                        title: "Reducing (sum/min/any/all)"
                      - file: user-guide/how-to-math-statistics
                        title: "Statistics (mean/var/std)"
                      - file: user-guide/how-to-math-argminmax
                        title: "Min/max/sort one array by another"
                      - file: user-guide/how-to-math-gpu
                        title: "Awkward Arrays on GPUs"

              - file: user-guide/how-to-strings
                title: "Working with strings"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-strings-read-binary
                        title: "Reading UTF-8 binary streams"
                      - file: user-guide/how-to-strings-extract-substrings
                        title: "Extracting substrings with regex"
                      - file: user-guide/how-to-strings-split-and-join
                        title: "Splitting and joining"

              - file: user-guide/how-to-filter
                title: "Filtering data"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-filter-num
                        title: "By number of items"
                      - file: user-guide/how-to-filter-cut-mask
                        title: "Cuts vs. masks"
                      - file: user-guide/how-to-filter-ragged
                        title: "Using ragged arrays"
                      - file: user-guide/how-to-filter-masked
                        title: "Using arrays with missing values"

              - file: user-guide/how-to-restructure
                title: "Restructuring data"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-restructure-zip-project
                        title: "Zip/unzip and project"
                      - file: user-guide/how-to-restructure-add-fields
                        title: "Adding fields to records"
                      - file: user-guide/how-to-restructure-flatten
                        title: "Flattening for plots"
                      - file: user-guide/how-to-restructure-pad
                        title: "Padding/clipping for machine learning"
                      - file: user-guide/how-to-restructure-concatenate
                        title: "Concatenating and interleaving"

              - file: user-guide/how-to-combinatorics
                title: "Combinatorics"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-combinatorics-cartesian-combinations
                        title: 'Cartesian and "n choose k"'
                      - file: user-guide/how-to-combinatorics-best-match
                        title: "Best match between collections"

              - file: user-guide/how-to-use-in-numba
                title: "Using arrays in Numba"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-use-in-numba-intro.md
                        title: "Introduction"
                      - file: user-guide/how-to-use-in-numba-features
                        title: "Supported features"
                      - file: user-guide/how-to-use-in-numba-cuda
                        title: "Working with CUDA"

              - file: user-guide/how-to-use-in-cpp
                title: "Using arrays in C++"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-use-header-only-layoutbuilder
                        title: "Building Awkward Arrays in C++ with LayoutBuilder"
                      - file: user-guide/how-to-use-in-cpp-cppyy
                        title: "JIT compiling operations with C++ in cppyy"

              - file: user-guide/how-to-specialize
                title: "Special topics"
                subtrees:
                  - entries:
                      - file: user-guide/how-to-specialize-differentiate-jax
                        title: "Differentiation using JAX"

      - file: reference/index
