Cross-matching catalogs with a common object ID

crossmatch(x, y[, skip_bounds_checking]) Finds where the elements of x appear in the array y, including repeats.
unsorting_indices(sorting_indices) Return the indexing array that inverts numpy.argsort.

Calculating quantities for objects grouped into a common halo

group_member_generator(data, grouping_key, …) Generator used to loop over grouped data and yield requested properties of members of a group.
compute_richness(unique_halo_ids, …) For every ID in unique_halo_ids, calculate the number of times the ID appears in halo_id_of_galaxies.

Generating Monte Carlo realizations

monte_carlo_from_cdf_lookup(x_table, y_table) Randomly draw a set of num_draws points from any arbitrary input distribution function.
build_cdf_lookup(y[, npts_lookup_table]) Compute a lookup table for the cumulative distribution function specified by the input set of y values.

Matching one distribution to another

distribution_matching_indices(…[, seed]) Calcuate a set of indices that will resample (with replacement) input_distribution so that it matches output_distribution.
resample_x_to_match_y(x, y, bins[, seed]) Return the indices that resample x (with replacement) so that the resampled distribution matches the histogram of y.
bijective_distribution_matching(x_in, x_desired) Replace the values in x_in with x_desired, preserving the rank-order of x_in

Rotations, dot products, and other operations in 3d space

elementwise_dot(x, y) Calculate the dot product between each pair of elements in two input lists of 3d points.
elementwise_norm(x) Calculate the normalization of each element in a list of 3d points.
angles_between_list_of_vectors(v0, v1[, tol]) Calculate the angle between a collection of 3d vectors
vectors_between_list_of_vectors(x, y, p) Starting from two input lists of vectors, return a list of unit-vectors that lie in the same plane as the corresponding input vectors, and where the input p controls the angle between the returned vs.
rotation_matrices_from_angles(angles, directions) Calculate a collection of rotation matrices defined by an input collection of rotation angles and rotation axes.
rotation_matrices_from_vectors(v0, v1) Calculate a collection of rotation matrices defined by the unique transformation rotating v1 into v2 about the mutually perpendicular axis.
rotate_vector_collection(rotation_matrices, …) Given a collection of rotation matrices and a collection of 3d vectors, apply each matrix to rotate the corresponding vector.

Probabilistic binning

fuzzy_digitize(x, centroids[, min_counts, seed]) Function assigns each element of the input array x to a centroid number.

Estimating two-dimensional PDFs

sliding_conditional_percentile(x, y, …[, …]) Estimate the cumulative distribution function Prob(< y | x).

Satellite orientations and intra-halo positions

rotate_satellite_vectors(satellite_vectors, …) Rotate an input set of satellite_vectors by the input satellite_rotation_angles about the axis associated with each satellite’s host halo.
calculate_satellite_radial_vector(…) For each satellite, calculate the radial vector pointing from the associated host halo to the satellite, accounting for periodic boundary conditions.
reposition_satellites_from_radial_vectors(…) Given original and new host-centric coordinates for satellites, reposition the satellites to their new spatial coordinates, accounting for periodic boundary conditions.