带有numpy arange的MemoryError

Ody*_*_v4 5 python numpy matplotlib out-of-memory

我想创建一个10的幂数组作为图的y轴的标签.我使用plt.yticks()mattlotlib作为plt导入,但无论如何这在此无关紧要.我有一些情节,因为y轴从1e3变化到1e15.那些是原木图.Matplotlib会自动显示带有1e2步的刻度线的那些,我希望步长为10(为了能够正确使用minorticks).

我想使用该plt.yticks(numpy.arange(1e3, 1e15, 10))命令,但numpy.arange(1e3, 1e15, 10)导致MemoryError.是不是应该输出长度为13的数组?为什么内存会变满?

如何跨越此问题而不是手动构建阵列?

我也试过使用内置range但它不适用于浮点数.

谢谢.

She*_*ore 6

试试logspacefrom NumPyas

plt.yticks(numpy.logspace(3, 15, 13))
Run Code Online (Sandbox Code Playgroud)

在这里,您给出起始和最后一个指数(10的幂)和它们之间的数据点数.如果您打印上面的网格,您将得到以下内容

array([1.e+03, 1.e+04, 1.e+05, 1.e+06, 1.e+07, 1.e+08, 1.e+09, 1.e+10,
   1.e+11, 1.e+12, 1.e+13, 1.e+14, 1.e+15])
Run Code Online (Sandbox Code Playgroud)