我想将一个包含分类变量的字符串数组转换为一个包含分类变量的整数数组。
例如:
import numpy as npa = np.array( ['a', 'b', 'c', 'a', 'b', 'c'])print a.dtype>>> |S1b = np.unique(a)print b>>> ['a' 'b' 'c']c = a.desired_function(b)print c, c.dtype>>> [1,2,3,1,2,3] int32
我知道这可以通过循环来实现,但我认为应该有更简单的方法。谢谢。
回答:
嗯,这是一个临时解决方案… 但它有帮助吗?
In [72]: c=(a.view(np.ubyte)-96).astype('int32')In [73]: print(c,c.dtype)(array([1, 2, 3, 1, 2, 3]), dtype('int32'))