在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中平均分割一个大向量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

swift 一句代码补全tableView分割线

使用 mclapply 分割雪茄矢量的有效方法

向量分割错误向量

Python中如何分割列表进行对比。 我有一个 大列表账号,密码,性别,邮箱,账号2,密码2,性别2,邮箱2

基于块长度向量的分割向量

如何在swift中从第一象限分割一个圆