Python 将字符串列转换为整数?

Python 将字符串列转换为整数?,python,algorithm,machine-learning,Python,Algorithm,Machine Learning,上面的代码是将一列字符串转换为整数(或一个热编码)的最基本的机器学习代码片段。但是我很难理解代码,尤其是class_values=[row[column]for row in dataset] unique=set(class_值)这两行的作用是什么,使得它可以进行一次热编码?所以class_值=[row[column]表示数据集中的行]就是所谓的列表理解。这是用python创建列表的简写方法。这句话相当于说: `# Convert string column to integer def st

上面的代码是将一列字符串转换为整数(或一个热编码)的最基本的机器学习代码片段。但是我很难理解代码,尤其是
class_values=[row[column]for row in dataset]

unique=set(class_值)
这两行的作用是什么,使得它可以进行一次热编码?

所以
class_值=[row[column]表示数据集中的行]
就是所谓的列表理解。这是用python创建列表的简写方法。这句话相当于说:

`# Convert string column to integer
def str_column_to_int(dataset, column):
      class_values = [row[column] for row in dataset]
      unique = set(class_values)
      lookup = dict()
      for i, value in enumerate(unique):
        lookup[value] = i
      for row in dataset:
        row[column] = lookup[row[column]]
    return lookup`
>>> dataset = [
...     [1, 2],
...     [1, 2],
...     [1, 2]
... ]
>>> column = 1
>>> class_values = [row[column] for row in dataset]
>>> class_values
[2, 2, 2]
>>> unique = set(class_values)
>>> unique
{2}
这些在Python中非常常见,因此一定要阅读并使用它们进行练习。它们使您的代码更干净,节省时间

集合可以在这里准备好:

简言之,它们是一个独特的分组。因此,如果您创建一组列表,您将得到一个对象,其中包含列表中的所有唯一值

集合也是一种无序集合。所以它们不是索引。它们的平均查找时间也为O(1)。重要补充声明
class_values = []
for row in dataset:
    class_values.append(row[column])