Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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_Arrays_Sorting_Bin - Fatal编程技术网

Python 如何创建垃圾箱

Python 如何创建垃圾箱,python,arrays,sorting,bin,Python,Arrays,Sorting,Bin,目前,我使用以下代码创建了垃圾箱: bin_volumes = [((i+1)**3 - i**3) * bin_width**3 *4 * np.pi/3 for i in range(num_bins)] 垃圾箱的格式: [(0.0, 0.10000000000000001), (0.10000000000000001, 0.20000000000000001), (0.20000000000000001, 0.30000000000000004), (0.3000000000000000

目前,我使用以下代码创建了垃圾箱:

bin_volumes = [((i+1)**3 - i**3) * bin_width**3 *4 * np.pi/3 for i in range(num_bins)]
垃圾箱的格式:

[(0.0, 0.10000000000000001), (0.10000000000000001, 0.20000000000000001), (0.20000000000000001, 0.30000000000000004), (0.30000000000000004, 0.40000000000000002), (0.40000000000000002, 0.5), (0.5, 0.60000000000000009), (0.60000000000000009, 0.70000000000000007), (0.70000000000000007, 0.80000000000000004), (0.80000000000000004, 0.90000000000000002), (0.90000000000000002, 1.0), (1.0, 1.1000000000000001), (1.1000000000000001, 1.2000000000000002), (1.2000000000000002, 1.3), (1.3, 1.4000000000000001), (1.4000000000000001, 1.5), (1.5, 1.6000000000000001), (1.6000000000000001, 1.7000000000000002), (1.7000000000000002, 1.8), (1.8, 1.9000000000000001), (1.9000000000000001, 2.0), (2.0, 2.1000000000000001), (2.1000000000000001, 2.2000000000000002), (2.2000000000000002, 2.3000000000000003), (2.3000000000000003, 2.4000000000000004), (2.4000000000000004, 2.5), (2.5, 2.6000000000000001), (2.6000000000000001, 2.7000000000000002), (2.7000000000000002, 2.8000000000000003), (2.8000000000000003, 2.9000000000000004), (2.9000000000000004, 3.0), (3.0, 3.1000000000000001), (3.1000000000000001, 3.2000000000000002), (3.2000000000000002, 3.3000000000000003), (3.3000000000000003, 3.4000000000000004), (3.4000000000000004, 3.5), (3.5, 3.6000000000000001), (3.6000000000000001, 3.7000000000000002), (3.7000000000000002, 3.8000000000000003), (3.8000000000000003, 3.9000000000000004)
数据格式:

3.615                                                                                                                                                                                                          
4.42745271008                                                                                                                                                                                                  
2.55619101399                                                                                                                                                                                                  
2.55619101399                                                                                                                                                                                                  
2.55619101399                                                                                                                                                                                                  
4.42745271008                                                                                                                                                                                                  
3.615
2.55619101399
4.42745271008
5.71581687075
5.71581687075
3.615
2.55619101399
2.55619101399
2.55619101399
2.55619101399
2.55619101399
2.55619101399
我希望每次一个数据点适合一个箱子的范围时都能添加一个,这样我就可以收集每个范围的“频率”,然后用它来创建一个图表

用于创建数据的代码:

for b in range(2047):
    for a in range(b+1,2048):
        vector1 = (l[b][0],l[b][1],l[b][2])
        vector2 = (l[a][0],l[a][1],l[a][2])

        x = vector1
        y = vector2
        vector3 = list(np.array(x) - np.array(y))

        dotProduct = reduce( operator.add, map( operator.mul, vector3, vector3))

        dp = dotProduct**.5
        data = dp

这将创建一个元组列表,每个元组定义一个容器的边界:

bins = [(i*bin_width, (i+1)*bin_width) for i in range(num_bins)]
如果您有一个数据值列表,如下所示:

data = [0.7, 2.8, 1.3]
[sum([(value >= low) and (value < high) for value in data]) for low, high in bins]
然后,您可以像下面这样计算每个垃圾箱中的垃圾数量:

data = [0.7, 2.8, 1.3]
[sum([(value >= low) and (value < high) for value in data]) for low, high in bins]
[sum([(value>=low)和(value
好的,很酷,你知道我可以用什么来计算每个箱子中有多少个数据点吗?这可能是一个新问题,但已经足够接近了-我在上面的答案中添加了另一部分。当我尝试时,我得到了错误:TypeError:'numpy.float64'对象不是Iterables你的
数据结构实际上是一个数组,还是只有一个号码?因为这个错误听起来像是只使用了一个数据值而不是一个值数组。当您运行
打印数据时
输出是什么?您应该为此创建一个新问题-将这两个问题放在一起很容易混淆。我会留意新的。你能详细解释一下数据的格式吗?这些行在一个文件中吗?它们是
numpy
数组中的值吗?不清楚。是的,这里我将提供创建数据集的代码,但是是的,我相信它是一个numpy数组。