Rud*_*ard 2 python arrays numpy
在Python中,我知道如何创建一个从某个值a开始的数组,将其上的每个组件增加一些m,直到达到某个值b:
array = numpy.arange(a, b, m)
但是,如果我想让m改变怎么办?具体来说,我想要数组 1,2,...9,10,20,...90,100,200,...900,1000..
因此,每十个组件将我的增量增加 10 倍。实现这一目标的最简单方法是什么?如果必须的话,我可以使用循环并“手动”执行此操作,但是有更好的方法吗?
您可以利用 numpy 的广播在几行内实现此目的。您可以创建一个给出 1-9 的数组,然后将其与一个给出 10 的幂的数组相乘。然后,您可以展平最终的数组以获得所需的列表。
>>> a = np.arange(1,10)
>>> b = 10**np.arange(4)
>>> (b[:, np.newaxis] * a).flatten()
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20,
30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400,
500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000, 6000,
7000, 8000, 9000])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21425 次 |
| 最近记录: |