gpt4 book ai didi

python - numpy 将分类字符串数组转换为整数数组

转载 作者:太空狗 更新时间:2023-10-29 17:08:56 27 4
gpt4 key购买 nike

我正在尝试将分类变量的字符串数组转换为分类变量的整数数组。

例如

import numpy as np
a = np.array( ['a', 'b', 'c', 'a', 'b', 'c'])
print a.dtype
>>> |S1

b = np.unique(a)
print b
>>> ['a' 'b' 'c']

c = a.desired_function(b)
print c, c.dtype
>>> [1,2,3,1,2,3] int32

我知道这可以通过循环来完成,但我想有更简单的方法。谢谢。

最佳答案

np.unique 有一些可选的返回

return_inverse 给出了我经常用到的整数编码

>>> b, c = np.unique(a, return_inverse=True)
>>> b
array(['a', 'b', 'c'],
dtype='|S1')
>>> c
array([0, 1, 2, 0, 1, 2])
>>> c+1
array([1, 2, 3, 1, 2, 3])

它可以用来从uniques重新创建原始数组

>>> b[c]
array(['a', 'b', 'c', 'a', 'b', 'c'],
dtype='|S1')
>>> (b[c] == a).all()
True

关于python - numpy 将分类字符串数组转换为整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3172509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com