48 template<
typename dtype>
51 const auto numRows = inArray.
numRows();
52 auto uniqueIndices =
unique(indices);
53 for (
auto& index : uniqueIndices)
60 uniqueIndices =
unique(uniqueIndices);
62 std::vector<NdArray<dtype>> splits{};
63 splits.reserve(uniqueIndices.size() + 1);
65 const auto cSlice = inArray.
cSlice();
67 for (
const auto index : uniqueIndices)
69 if (
static_cast<uint32>(index) > numRows)
74 splits.push_back(inArray({ lowerIdx, index }, cSlice));
78 if (
static_cast<uint32>(lowerIdx) < numRows)
80 splits.push_back(inArray({ lowerIdx,
static_cast<int32>(numRows) }, cSlice));
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition: NdArrayCore.hpp:72
Slice cSlice(int32 inStartIdx=0, uint32 inStepSize=1) const noexcept
Definition: NdArrayCore.hpp:969
uint32 numRows() const noexcept
Definition: NdArrayCore.hpp:3264
Definition: Coordinate.hpp:45
std::vector< NdArray< dtype > > vsplit(const NdArray< dtype > &inArray, const NdArray< int32 > &indices)
Definition: vsplit.hpp:49
std::int32_t int32
Definition: Types.hpp:36
NdArray< dtype > unique(const NdArray< dtype > &inArray)
Definition: unique.hpp:54
std::uint32_t uint32
Definition: Types.hpp:40