我正在尝试转换numpy数组
np.array([1,3,2])
至
np.array([[1,0,0],[0,0,1],[0,1,0]])
你知道如何有效地做到这一点吗?谢谢!
发布于 2018-05-25 09:53:48
创建一个布尔数组,然后填充它:
import numpy as np
a = np.array([1, 2, 3, 0, 3, 2, 1])
b = np.zeros((len(a), a.max() + 1), bool)
b[np.arange(len(a)), a] = 1
发布于 2018-05-25 10:34:29
尝试pandas的get dummy方法。
import pandas as pd
import numpy as np
arr = np.array([1 ,3, 2])
df = pd.get_dummies(arr)
如果您需要的是numpy数组对象,请执行以下操作:
arr2 = df.values
发布于 2018-05-25 11:18:29
也可以仅从np.eye
或单位矩阵中选择正确的值:
a = np.array([1,3,2])
b = np.eye(max(a))[a-1]
这可能是最直接的。
https://stackoverflow.com/questions/50520215
复制相似问题