制作一个类似于[1,2,3,…,10,20,30,…]

2024-04-25 02:08:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着运行一个模拟,以一个参数作为输入。我需要为一系列不同的参数值运行它,这些参数值跨越几个数量级,但也给出了每个数量级内变化的图片。你知道吗

简而言之,我需要我的参数取值param = [1, 2, 3, ... 9, 10, 20, 30, ..., 90, 100, 200, ...]。你知道吗

我已经试着回答了我自己的问题,但是有没有一种更直接的方法可以在numpy中实现这一点,这也让意图更清晰?你知道吗


Tags: 方法numpy参数param图片意图参数值数量级
2条回答

目前,我在这方面的最佳尝试如下:

>>> a = np.arange(1, 10)
>>> b = np.logspace(0, 4, num=5)
>>> result = (a[np.newaxis, :] * b[:, np.newaxis]).flatten()
>>> result
array([  1.000e+00,   2.000e+00,   3.000e+00,   4.000e+00,   5.000e+00,
         6.000e+00,   7.000e+00,   8.000e+00,   9.000e+00,   1.000e+01,
         2.000e+01,   3.000e+01,   4.000e+01,   5.000e+01,   6.000e+01,
         7.000e+01,   8.000e+01,   9.000e+01,   1.000e+02,   2.000e+02,
         3.000e+02,   4.000e+02,   5.000e+02,   6.000e+02,   7.000e+02,
         8.000e+02,   9.000e+02,   1.000e+03,   2.000e+03,   3.000e+03,
         4.000e+03,   5.000e+03,   6.000e+03,   7.000e+03,   8.000e+03,
         9.000e+03,   1.000e+04,   2.000e+04,   3.000e+04,   4.000e+04,
         5.000e+04,   6.000e+04,   7.000e+04,   8.000e+04,   9.000e+04])

您可以轻松地使用两个循环创建这样一个数组:

param = [multiplier * magnitude for magnitude in [1, 10, 100] for multiplier in [1, 2, 3, 4, 5, 6, 7, 8, 9]]

相关问题 更多 >