def binom(arr):
seen = set()
values = []
for item in arr:
if item in seen:
continue
seen.add(item)
values.append(item)
result = []
for item in arr:
r = [0] * len(values)
r[values.index(item)] = 1
result.append(r)
return result
m = ['cat', 'dog', 'mouse']
x = np.array([1, 0, 0])
result = np.array([np.roll(x, m.index(value)) for value in array])
输出:
^{pr2}$
如果要处理不在m中的值,则可以按如下方式修改列表理解:
arr = np.array(['cat', 'dog', 'mouse', 'cat', None, 'dog']) # Example array
result = np.array([np.roll(x, m.index(value)) if value in m else np.zeros(len(m)) for value in arr])
建议的答案是好的,但您也可以考虑使用熊猫:
http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.get_dummies.html
在普通python中
三个班轮。首先创建一个列表,该列表将}映射到一个数字,即它们在列表中的位置,然后创建一个数组进行操作。最后使用列表理解来做映射。在
cat
、dog
和{输出:
^{pr2}$如果要处理不在
m
中的值,则可以按如下方式修改列表理解:输出:
相关问题 更多 >
编程相关推荐