numpy.linespace和bin之间的不均匀间距

时间:2018-03-05 18:30:53

标签: python numpy

我正在使用numpy.linespace来帮助生成数据箱。 我希望20个箱子介于0到1,000,000之间,每个箱子大小为20k。

numpy.linespace给出了不均匀的bin大小。

bins = np.linspace(start = 0, stop =1000000, num = 50, dtype = 'int64')

这给出了如下(前5个箱子)的箱子

2.040800000000000000e+04
,4.081600000000000000e+04
,6.122400000000000000e+04
,8.163200000000000000e+04
,1.020400000000000000e+05

任何想法如何获得偶数箱20000,40000,60000,80000,1000000

感谢您提供任何帮助和建议

2 个答案:

答案 0 :(得分:1)

只需在数量o样本

中添加一个
>>> bins = np.linspace(start = 0, stop = 1000000, num = 51, dtype = 'int64')
>>> bins
array([ 0,   20000,   40000,   60000,   80000,  100000,  120000,
    140000,  160000,  180000,  200000,  220000,  240000,  260000,
    280000,  300000,  320000,  340000,  360000,  380000,  400000,
    420000,  440000,  460000,  480000,  500000,  520000,  540000,
    560000,  580000,  600000,  620000,  640000,  660000,  680000,
    700000,  720000,  740000,  760000,  780000,  800000,  820000,
    840000,  860000,  880000,  900000,  920000,  940000,  960000,
    980000, 1000000])

答案 1 :(得分:0)

使用arange代替linspace

In [456]: np.arange(0,1000001,20000)
Out[456]: 
array([      0,   20000,   40000,   60000,   80000,  100000,  120000,
        140000,  160000,  180000,  200000,  220000,  240000,  260000,
        280000,  300000,  320000,  340000,  360000,  380000,  400000,
        420000,  440000,  460000,  480000,  500000,  520000,  540000,
        560000,  580000,  600000,  620000,  640000,  660000,  680000,
        700000,  720000,  740000,  760000,  780000,  800000,  820000,
        840000,  860000,  880000,  900000,  920000,  940000,  960000,
        980000, 1000000])
In [457]: _.shape
Out[457]: (51,)

arange不包括结束点,因此我添加了1. linspace包括结束点(但可以关闭),但默认情况下会生成浮点数