A very simple function that will likely be faster in C:
def array_from_iterator(iterator: tp.Iterator[tp.Any],
count: int,
dtype: DtypeSpecifier,
) -> np.ndarray:
'''Given an iterator/generaotr of known size and dtype, load it into an array.
'''
if dtype != object:
return np.fromiter(iterator,
count=count,
dtype=dtype,
)
array = np.empty(count, dtype=dtype)
for i, v in enumerate(iterator):
array[i] = v
return array
A very simple function that will likely be faster in C: