numpy的数据操作

怎么把一个全为汉字含四种种类的一维矩阵用数字代替?(在其他视频里看到别人用了map这个函数去映射数据,但是我用的numpy不允许)

该回答引用ChatGPT

你可以创建一个字典来将每种类别的汉字映射到一个数字,然后遍历你的矩阵,用字典将每个汉字替换为对应的数字。例如:


data = ['A', 'B', 'C', 'D', 'A', 'B', 'C']

# 创建一个字典映射
d = {'A': 1, 'B': 2, 'C': 3, 'D': 4}

# 遍历数据并映射到数字
numerical_data = [d[x] for x in data]

print(numerical_data)  # 输出 [1, 2, 3, 4, 1, 2, 3]

对于你的情况,可以简单地将上面的代码替换为你自己的汉字数据。

首先,我们需要创建一个字典,将四种种类的汉字映射为数字。然后,我们可以使用numpy中的np.vectorize()函数将该字典映射到一维矩阵上。代码示例如下:


import numpy as np

# 创建字典,将四种种类的汉字映射为数字
char_to_num = {'类1': 1, '类2': 2, '类3': 3, '类4': 4}

# 创建一维矩阵,包含全为汉字的数据
chars = np.array(['类1', '类2', '类3', '类1', '类4'])

# 使用np.vectorize函数将字典映射到一维矩阵上
func = np.vectorize(lambda x: char_to_num[x])
nums = func(chars)

print(nums)
# 输出:[1 2 3 1 4]

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^