相关疑难解决方法(0)

如何将列表拆分为大小均匀的块?

我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.

我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.

我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.

相关问题:在块中迭代列表的最"pythonic"方法是什么?

python split list chunks

2068
推荐指数
40
解决办法
84万
查看次数

一个使用numpy的热编码

如果输入为零,我想创建一个如下所示的数组:

[1,0,0,0,0,0,0,0,0,0]
Run Code Online (Sandbox Code Playgroud)

如果输入为5:

[0,0,0,0,0,1,0,0,0,0]
Run Code Online (Sandbox Code Playgroud)

对于上面我写道:

np.put(np.zeros(10),5,1)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

有什么方法可以在一行中实现吗?

python numpy one-hot-encoding

34
推荐指数
3
解决办法
6万
查看次数

迭代给定大小的所有子集

我知道迭代一组大小为n的所有子集是一场性能噩梦,需要花费O(2 ^ n)时间.

如何迭代大小为k的所有子集(对于(0 <= k <= n))?这是一场表演噩梦吗?我知道有(n,k)= n!/ k!(n - k)!可能性.我知道如果k非常接近0或非常接近n,这是一个很小的数字.

在n和k方面,最糟糕的表现是什么?除了O(n!/ k!(n - k)!)之外,还有一种更简单的方式吗?这是渐近地小于O(n!)还是相同?

performance combinatorics

4
推荐指数
1
解决办法
1862
查看次数