Arrays 在Swift中等分一个大向量

Arrays 在Swift中等分一个大向量,arrays,swift,coreml,Arrays,Swift,Coreml,我有一个长度为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个小的MLMULTARRAY,每个阵列有128个元素,而不改变这个阵列的顺序,并且以最有效的方式 15360个元素的整个阵列在此中可用。是的,您可以通过

我有一个长度为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个小的MLMULTARRAY,每个阵列有128个元素,而不改变这个阵列的顺序,并且以最有效的方式


15360个元素的整个阵列在此

中可用。是的,您可以通过扩展来实现这一点,也可以将其用作一般解决方案:

extension Array {
    func splited(into size: Int) -> [[Element]] {
        return stride(from: 0, to: count, by: size).map {
            Array(self[$0 ..< Swift.min($0 + size, count)])
        }
    }
}
let yourArray = [14.78125,-0.6308594, ...] // 15360 elements of your array
let result = yourArray.splited(into: 128)
扩展数组{
func拆分(大小:Int)->[[Element]]{
返回步幅(从:0到:计数,按:大小)。映射{
数组(自身[$0..
是的,您可以通过一个扩展来实现这一点,您也可以将其用作通用解决方案:

extension Array {
    func splited(into size: Int) -> [[Element]] {
        return stride(from: 0, to: count, by: size).map {
            Array(self[$0 ..< Swift.min($0 + size, count)])
        }
    }
}
let yourArray = [14.78125,-0.6308594, ...] // 15360 elements of your array
let result = yourArray.splited(into: 128)
扩展数组{
func拆分(大小:Int)->[[Element]]{
返回步幅(从:0到:计数,按:大小)。映射{
数组(自身[$0..
等。可能根本不切片,而是使用间隔访问数组,n*128->n+128-1等。可能根本不切片,而是使用间隔访问数组,n*128->n+128-1除了MLMultiArray,我还有什么方法可以做同样的事情吗?除了MLMultiArray之外,有没有其他方法可以替代Float32?而不是一个浮动32?