That is fabulous and pretty much it! Follow up questions: 1. Is there any efficient way to refer to ranges: say I want to take rows 1000-2000 and 4000-5000, feels unwieldy to have to create an index array of 2000 elements and then also the underlying implementation would be less efficient having to iterate over those indices an copy elements one by one, rather than do two memcopies and be done. 2. Is the chunk structure being preserved - the deprecated API suggests that if the input is a ChunkedArray the output is also a ChunkedArray - my hope and expectation was to pic ranges from multiple Array objects drop them all into a single Array and I am not sure the Datum version does that 3. Is it possible to append to an existing Array (or Datum in general) rather than have a new Array/Datum produced by the Take function.
Thanks a lot for the quick response (and for all awesome work you guys have been putting into this project) Radu > On Jun 26, 2020, at 12:39 PM, Micah Kornfield <emkornfi...@gmail.com> wrote: > > This sounds like the Take kernel? > > On Friday, June 26, 2020, Radu Teodorescu <radukay...@yahoo.com.invalid> > wrote: > >> (Light weigh topic this time) >> Are there any existing functions for deep copying Array,ArrayData or Table >> objects in the C++ API? >> Ultimately, I am trying to get a bunch of sparse row ranges from a ranges >> into a contiguous new Table - I can see how I can copy Buffer and I can >> implement it all myself, but I am trying to make sure I am not reinventing >> the wheel. >> >> Thank you >> Radu