我有一个(400, 1)
numpy数组,它有4300, 4450, 4650...
这样的值,这些值可以分布在20个类周围,即4300 class 1, 4450 class 2...
,并尝试使用下面的代码将该数组转换为一个热编码列表。y_train_onehot
显示了400个数组的列表,其中每个数组的大小都大于4000,即每个数组有大约4000个零。我如何解决这个问题,以便每个值都有一个热编码向量,即4300
可以是00001
。你知道吗
def convertOneHot(data):
y=np.array([int(i[0]) for i in data])
y_onehot=[0]*len(y)
for i,j in enumerate(y):
y_onehot[i]=[0]*(y.max() + 1)
y_onehot[i][j]=1
return (y,y_onehot)
y_train,y_train_onehot = convertOneHot(data)
以下是一些未优化的示例:
编辑1一个可读性较差但更优雅的版本:
我用了熊猫假人,很简单。你知道吗
然后呢
相关问题 更多 >
编程相关推荐