在 Swift 中平均分割一个大向量

Split a large Vector Equally in Swift

我有一个长度为 15360 个值的大型 MLMultiArray。

样本:

[14.78125,-0.6308594,5.609375,13.57812,-1.871094,-19.65625,9.5625,8.640625,-2.728516,3.654297,-3.189453,-1.740234...]

有没有一种方法可以将这个巨大的数组转换为 120 个小的 MLMultiArray,每个数组有 128 个元素,而无需更改此数组的顺序,并且以最有效的方式进行?

包含 15360 个元素的整个数组在此 Link

中可用

是的,您可以使用扩展来完成此操作,您也可以将其用作通用解决方案:

extension Array {
    func splited(into size: Int) -> [[Element]] {
        return stride(from: 0, to: count, by: size).map {
            Array(self[[=10=] ..< Swift.min([=10=] + size, count)])
        }
    }
}
let yourArray = [14.78125,-0.6308594, ...] // 15360 elements of your array
let result = yourArray.splited(into: 128)