  Analysis on HEP data is an iterative process in which the results of one step
often inform the next. In an exploratory analysis, it is common to perform one
computation on a collection of events, then view the results (often with
histograms) to decide what to try next. Awkward Array is a Scikit-HEP Python
package that enables data analysis with array-at-a-time operations to implement
cuts as slices, combinatorics as composable functions, etc. However, most C++
HEP libraries, such as FastJet, have an imperative, one-particle-at-a-time
interface, which would be inefficient in Python and goes against the grain of
the array-at-a-time logic of scientific Python. Therefore, we developed
fastjet, a pip-installable Python package that provides FastJet C++ binaries,
the classic (particle-at-a-time) Python interface, and the new array-oriented
interface for use with Awkward Array.
  The new interface streamlines interoperability with scientific Python
software beyond HEP, such as machine learning. In one case, adopting this
library along with other array-oriented tools accelerated HEP analysis code by
a factor of 20. It was designed to be easily integrated with libraries in the
Scikit-HEP ecosystem, including Uproot (file I/O), hist (histogramming), Vector
(Lorentz vectors), and Coffea (high-level glue). We discuss the design of the
fastjet Python library, integrating the classic interface with the array
oriented interface and with the Vector library for Lorentz vector operations.
The new interface was developed as open source.
