np.random.choice应该强制吗?

时间:2017-10-19 00:23:55

标签: python numpy random coercion

我刚注意到,如果在包含字符串和整数的列表上使用np.random.choice,那么当返回整数时,它们将被强制转换为字符串。这是预期的行为吗?

e.g。

>>>numpy.random.choice([1,2,3,4]) 1

>>>numpy.random.choice(['a',1,2,3,4]) '1'

我想我可以做my_list[np.random.choice(range(len(my_list)))],但这看起来很难看。

1 个答案:

答案 0 :(得分:0)

这不是随机选择所特有的; NumPy方法适用于NumPy数组,如果给定Python列表,它们会在执行任何其他操作之前将其转换为数组。转换结果为:

>>> np.array(['a', 1, 2, 3, 4])
array(['a', '1', '2', '3', '4'],
      dtype='<U1')

一个单字符Unicode字符串数组。选择是从这个数组。