在Python中将数组与布尔元素与字符串组合在一起

时间:2017-03-20 01:42:47

标签: python arrays numpy

我有一个numpy数组arr,其中包含0到8847之间的一些随机数,我希望将其转换为例如如果数字从0到930,则应该有'a',如果数字大于930但小于3971,则应该有'b'等。

我的第一个想法是:

((arr <= 930) * 'a') + ((arr > 930 and arr <= 3971) * 'b')
+ ((arr > 3971 and arr <= 6053) * 'c') + ((arr > 6053) * 'd')

但这不起作用。所以我认为我可以为每个字符串制作类似的东西:

a = ['a'] * 8847
a[arr]

它也不起作用。

我知道我可以使用循环而且我知道该怎么做但我宁愿避免这种情况。你有什么想法吗?这是我学习Python的第一天,所以我更喜欢容易理解的解决方案。

提前谢谢你们。

1 个答案:

答案 0 :(得分:0)

您可以使用二等分。

请看这里提供的示例 Example of bisect usage