ak.type — Awkward Array documentation

# ak.type

Defined in awkward.operations.describe on line 77.

ak.type(array)

The high-level type of an `array` (many types supported, including all Awkward Arrays and Records) as `ak.types.Type` objects.

The high-level type ignores #layout differences like `ak.layout.ListArray64` versus `ak.layout.ListOffsetArray64`, but not differences like “regular-sized lists” (i.e. `ak.layout.RegularArray`) versus “variable-sized lists” (i.e. `ak.layout.ListArray64` and similar).

Types are rendered as Datashape strings, which makes the same distinctions.

For example,

    ak.Array([[{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [2, 2]}],
              [],
              [{"x": 3.3, "y": [3, 3, 3]}]])

has type

    3 * var * {"x": float64, "y": var * int64}

but

    ak.Array(np.arange(2*3*5).reshape(2, 3, 5))

has type

    2 * 3 * 5 * int64

Some cases, like heterogeneous data, require extensions beyond the Datashape specification. For example,

    ak.Array([1, "two", [3, 3, 3]])

has type

    3 * union[int64, string, var * int64]

but “union” is not a Datashape type-constructor. (Its syntax is similar to existing type-constructors, so it’s a plausible addition to the language.)