Source code for NiaPy.util.array
import numpy as np
__all__ = ['full_array', 'objects_to_array']
[docs]def full_array(a, dimension):
r"""Fill or create array of length dimension, from value or value form a.
Arguments:
a (Union[int, float, numpy.ndarray], Iterable[Any]): Input values for fill.
dimension (int): Length of new array.
Returns:
numpy.ndarray: Array filled with passed values or value.
"""
out = []
if isinstance(a, (int, float)):
out = np.full(dimension, a)
elif isinstance(a, (np.ndarray, list, tuple)):
if len(a) == dimension:
out = a if isinstance(a, np.ndarray) else np.asarray(a)
elif len(a) > dimension:
out = a[:dimension] if isinstance(a, np.ndarray) else np.asarray(a[:dimension])
else:
for i in range(int(np.ceil(float(dimension) / len(a)))):
out.extend(a[:dimension if (dimension - i * len(a)) >= len(a) else dimension - i * len(a)])
out = np.asarray(out)
return out
[docs]def objects_to_array(objs):
r"""Convert `Iterable` array or list to `NumPy` array with dtype object.
Args:
objs (Iterable[Any]): Array or list to convert.
Returns:
numpy.ndarray: Array of objects.
"""
a = np.empty(len(objs), dtype=object)
for i, e in enumerate(objs):
a[i] = e
return a