我刚注意到,如果在包含字符串和整数的列表上使用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)))]
,但这看起来很难看。
答案 0 :(得分:0)
这不是随机选择所特有的; NumPy方法适用于NumPy数组,如果给定Python列表,它们会在执行任何其他操作之前将其转换为数组。转换结果为:
>>> np.array(['a', 1, 2, 3, 4])
array(['a', '1', '2', '3', '4'],
dtype='<U1')
一个单字符Unicode字符串数组。选择是从这个数组。