通常,在创建某些数字序列时,python和numpy提供了一些语法糖,以简单的方式来实现,而无需使用for循环来生成它们,例如range(start, stop, step)
。
我有一个相当简单的问题,我正在努力以一种优雅的方式解决:生成一个2的幂的列表。例如list = [1, 2, 4, 8, ...]
。
我想出了
n_powers = 4
list = np.zeros(n_powers)
for i in range(0, n_powers):
list[i] = 2 ** i
有没有更好的办法?
6条答案
按热度按时间ycggw6v21#
你似乎在使用NumPy,那么为什么不这样做呢-
这是广播求幂。
blmhpbnm2#
也许只是:
laik7k3q3#
最好不要将
list
用作变量,因为它是一种数据类型,并且具有内置的list()函数bn31dyow4#
我不知道你的问题是什么,你可以这样做:
qacovj5a5#
根据documentation,您可以使用power()函数在numpy中增加所需的功率。
也就是说,为了增加2的幂,你可以使用这个:
np.power(np.arange(4), 2)
cwdobuhd6#
在这个问题的情况下(2的幂),你可以使用下面的Numpy方法。