48 template<
typename dtype>
51 const auto numCols = inArray.
numCols();
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 rSlice = inArray.
rSlice();
67 for (
const auto index : uniqueIndices)
69 if (
static_cast<uint32>(index) > numCols)
74 splits.push_back(inArray(rSlice, { lowerIdx, index }));
78 if (
static_cast<uint32>(lowerIdx) < numCols)
80 splits.push_back(inArray(rSlice, { lowerIdx,
static_cast<int32>(numCols) }));
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition: NdArrayCore.hpp:72
uint32 numCols() const noexcept
Definition: NdArrayCore.hpp:3252
Slice rSlice(int32 inStartIdx=0, uint32 inStepSize=1) const noexcept
Definition: NdArrayCore.hpp:983
Definition: Coordinate.hpp:45
std::int32_t int32
Definition: Types.hpp:36
std::vector< NdArray< dtype > > hsplit(const NdArray< dtype > &inArray, const NdArray< int32 > &indices)
Definition: hsplit.hpp:49
NdArray< dtype > unique(const NdArray< dtype > &inArray)
Definition: unique.hpp:54
std::uint32_t uint32
Definition: Types.hpp:40