don't force numpy
drop things like asserting type(df) is numpy.ndarray so that end-users can switch to e.g. cupy
See agnostic-DC and CIL-cupy but it is outdated
#978 and #572 right :)
I did some work on this https://github.com/TomographicImaging/CIL/pull/1126
I made such that the user could specify which backend for the DataContainer they want to use.
It became a bit complicated at creation/copy time as the API of cupy and numpy are not entirely the same.
I developed further and compared 4 different implementations of TV: Regularisation Toolkit FGP_TV, TotalVariation with backend C, NumPy and CuPy (new).
https://github.com/paskino/CIL/blob/cupy_array_copy/experiments/cupy_TV.py, see https://discord.com/channels/929016277266219038/936564472531795968/1210601876161175573