在Swift中平均分割一个大向量[重复]
Posted
技术标签:
【中文标题】在Swift中平均分割一个大向量[重复]【英文标题】:Split a large Vector Equally in Swift [duplicate] 【发布时间】:2020-08-26 01:42:50 【问题描述】:我有一个长度为 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 个小的 MLMultiArrays,每个数组有 128 个元素,而不改变这个数组的顺序,并且以最有效的方式?
15360 个元素的整个数组在这个Link 中可用
【问题讨论】:
hackingwithswift.com/example-code/language/… ***.com/questions/26395766/… 等 可能根本不对其进行切片,而是使用间隔访问数组,n * 128 -> n +128 - 1 【参考方案1】:是的,您可以使用扩展来执行此操作,也可以将其用作一般解决方案:
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)
【讨论】:
除了 MLMultiArray 之外,有没有办法可以做同样的事情?而不是 Float32?以上是关于在Swift中平均分割一个大向量[重复]的主要内容,如果未能解决你的问题,请参考以下文章