Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中生成日志刻度_Python_Numpy_Matplotlib_Numpy Ndarray - Fatal编程技术网

在python中生成日志刻度

在python中生成日志刻度,python,numpy,matplotlib,numpy-ndarray,Python,Numpy,Matplotlib,Numpy Ndarray,我需要生成一个列表,其中包含10^a和10^b之间的对数刻度,a

我需要生成一个列表,其中包含10^a和10^b之间的对数刻度,a
 # List containing 0.1, 0.2, 0.3, ..., 800, 900, 1000 
 x = np.arange(0.1, 1.0, 0.1).tolist() +
     np.arange(1, 10, 1).tolist() + 
     np.arange(10, 100, 10).tolist() + 
     np.arange(100, 1000, 100).tolist()

有没有一种方法可以做到这一点

这可以通过-

另一个-

N
-

s = [10**i for i in range(-1,N)]
np.linspace(s[:-1],s[1:],9, endpoint=False, axis=1).ravel()
您还可以使用NumPy的两个阵列的乘积。这里
.T
用于转置以获得所需的顺序

a = np.arange(1, 10)
# array([1, 2, 3, 4, 5, 6, 7, 8, 9])

b = np.logspace(-1, 2, 4)
# array([  0.1,   1. ,  10. , 100. ])

x = np.outer(a, b).T.flatten() # flatten is to create a 1-d array from 2-d array

# array([1.e-01, 2.e-01, 3.e-01, 4.e-01, 5.e-01, 6.e-01, 7.e-01, 8.e-01,
#        9.e-01, 1.e+00, 2.e+00, 3.e+00, 4.e+00, 5.e+00, 6.e+00, 7.e+00,
#        8.e+00, 9.e+00, 1.e+01, 2.e+01, 3.e+01, 4.e+01, 5.e+01, 6.e+01,
#        7.e+01, 8.e+01, 9.e+01, 1.e+02, 2.e+02, 3.e+02, 4.e+02, 5.e+02,
#        6.e+02, 7.e+02, 8.e+02, 9.e+02])
s = [10**i for i in range(-1,N)]
np.linspace(s[:-1],s[1:],9, endpoint=False, axis=1).ravel()
a = np.arange(1, 10)
# array([1, 2, 3, 4, 5, 6, 7, 8, 9])

b = np.logspace(-1, 2, 4)
# array([  0.1,   1. ,  10. , 100. ])

x = np.outer(a, b).T.flatten() # flatten is to create a 1-d array from 2-d array

# array([1.e-01, 2.e-01, 3.e-01, 4.e-01, 5.e-01, 6.e-01, 7.e-01, 8.e-01,
#        9.e-01, 1.e+00, 2.e+00, 3.e+00, 4.e+00, 5.e+00, 6.e+00, 7.e+00,
#        8.e+00, 9.e+00, 1.e+01, 2.e+01, 3.e+01, 4.e+01, 5.e+01, 6.e+01,
#        7.e+01, 8.e+01, 9.e+01, 1.e+02, 2.e+02, 3.e+02, 4.e+02, 5.e+02,
#        6.e+02, 7.e+02, 8.e+02, 9.e+02])