Swift MLDataTable - 如何删除行?

标签 swift macos-mojave createml

我正在从 .csv 文件创建一个 MLDataTable 并想删除一些行,即特定列具有特定值的所有行 - 这可能吗?

最佳答案

我知道我的回答有点晚了,但希望其他人会觉得它有用。

您不能就地删除给定表格中的行,但您可以创建一个新表格并过滤掉一些行。

这是一个示例表:

let employeesDict: [String: MLDataValueConvertible] = [
    "First Name": ["Alice", "Bob", "Charlie", "Dave", "Eva"],
    "Years of experience": [10, 1, 8, 5, 3],
    "Gender": ["female", "male", "male", "male", "female"],
]

let employeesTable = try! MLDataTable(dictionary: employeesDict)

过滤是通过传递一个MLDataColumn<Bool>的实例来实现的到表的下标运算符。 Apple 称其为“行掩码”。 这是一个用于过滤掉手工构建的女性实例的行掩码:

let maleEmployeesMaskByHand = MLDataColumn([false, true, true, true, false])

将其作为参数传递给 employeesTable的下标运算符生成下表:

let maleEmployeesTable = employeesTable[maleEmployeesMaskByHand]
print(maleEmployeesTable)
+----------------+----------------+---------------------+
| Gender         | First Name     | Years of experience |
+----------------+----------------+---------------------+
| male           | Bob            | 1                   |
| male           | Charlie        | 8                   |
| male           | Dave           | 5                   |
+----------------+----------------+---------------------+

这是构建相同行掩码的另一种方法:

let genderColumn: MLDataColumn<String> = employeesTable["Gender"]
let maleEmployeesMask = genderColumn != "female"
print(employeesTable[maleEmployeesMask])

首先检索所需的列,然后 - 由于运算符重载 - 通过应用 != 构建行掩码运算符到整列。

这是一种在一行中实现相同目的的方法:

print(employeesTable[ employeesTable["Gender"] != "female" ])

相关文档的链接:https://developer.apple.com/documentation/createml/mldatatable/3006094-subscript

关于Swift MLDataTable - 如何删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52255679/

相关文章:

ios - UILabel 边框和填充

ios - 无法导入导入 Project-Swift.h 的 Swift 桥接 header Objective-C 文件

ios - 带有 NSValue 的 Swift NSCoding

objective-c - NSPopUpButton:NSPopUpButtonCell 已弃用?

swift - 使用 CreateML 在 Swift 中为机器学习创建数据表

swift - iOS人脸识别持续学习

swift - 获取对场景编辑器中创建的粒子系统的引用

java - System.getenv 仍然会在 MacOS Mojave 上获取已删除的 env 变量值 - Java

cocoa - 如何辨别 NSColor 控件AccentColor 的名称

swift - Core ML : Creating Model with Create, 工作正常但如何控制未经训练的输入?