在 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)
我有一个长度为 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)