Source code for numpoly.array_function.atleast_1d

"""Convert inputs to arrays with at least one dimension."""
from __future__ import annotations
from typing import List, Union

import numpy
import numpoly

from ..baseclass import ndpoly, PolyLike
from ..dispatch import implements


[docs]@implements(numpy.atleast_1d) def atleast_1d(*arys: PolyLike) -> Union[ndpoly, List[ndpoly]]: """ Convert inputs to arrays with at least one dimension. Scalar inputs are converted to 1-dimensional arrays, whilst higher-dimensional inputs are preserved. Args: arys: One or more input arrays. Return: An array, or list of arrays, each with ``a.ndim >= 1``. Copies are made only if necessary. Example: >>> numpoly.atleast_1d(numpoly.variable()) polynomial([q0]) >>> numpoly.atleast_1d(1, [2, 3]) [polynomial([1]), polynomial([2, 3])] """ if len(arys) == 1: poly = numpoly.aspolynomial(arys[0]) array = numpy.atleast_1d(poly.values) return numpoly.aspolynomial(array, names=poly.indeterminants) return [atleast_1d(ary) for ary in arys]