通常在创建某些数字序列时,python 和 numpy 会提供一些语法糖来以简单的方式执行此操作,而无需使用 for 循环自行生成它们,例如范围(开始、停止、步骤)
。
我有一个相当简单的问题,我正在努力以一种优雅的方式解决:生成一个 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
有更好的方法吗?
最佳答案
你似乎在使用 NumPy,那为什么不直接这样做呢 -
>>> 2 ** np.arange(4)
array([1, 2, 4, 8])
这是广播求幂。
关于python - 生成一个 2 的幂的 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200272/