Looks like Concatenate is my best bet if I am looking at putting together 
ranges, certainly doesn’t look as neatly packaged as Take, but this might be 
the right tool for this job.  

> On Jun 26, 2020, at 1:01 PM, Radu Teodorescu <radukay...@yahoo.com.INVALID> 
> wrote:
> 
> 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
> 

Reply via email to