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

Python:如何计算桶点

Python:如何计算桶点,python,nested-loops,buckets,Python,Nested Loops,Buckets,我有四个点1,2,3,1,1,23,29,0,17,0,5,我需要做的是将所有点移动到新位置0,0,0,0,0,0,20,30,0,20,0,0,10,它们代表边长等于10长度=10的立方体的中心点。谢谢您解释您需要做的事情。你有问题吗?你的问题很模糊。如果您决定让它更清楚,请务必提及哪些不起作用。我的问题是,如何使用循环结构自动将所有点移动到上述中心点?移动点是什么意思?如何移动一个点? import numpy as np import math length = 10 points =

我有四个点1,2,3,1,1,23,29,0,17,0,5,我需要做的是将所有点移动到新位置0,0,0,0,0,0,20,30,0,20,0,0,10,它们代表边长等于10长度=10的立方体的中心点。

谢谢您解释您需要做的事情。你有问题吗?你的问题很模糊。如果您决定让它更清楚,请务必提及哪些不起作用。我的问题是,如何使用循环结构自动将所有点移动到上述中心点?移动点是什么意思?如何移动一个点?
import numpy as np
import math

length = 10

points = [(1,2,3),(1,1,1),(23, 29, 0),(17, 0, 5)]

bucketed_points = {}

max_x = max([x for (x,y,z) in points])
max_y = max([y for (x,y,z) in points])
max_z = max([z for (x,y,z) in points])

x_buckets = int(max_x)/length + 1
y_buckets = int(max_y)/length + 1
z_buckets = int(max_z)/length + 1

for x in range(0, int(x_buckets)):

  for y in range(0, int(y_buckets)):

    for z in range(0, int(z_buckets)):

      bucketed_points["{0},{1},{2}".format(x, y, z)] = []

for point in points:
 # Here's where we actually put them in buckets
  x, y, z = point
  x, y, z = map(lambda a: int(math.floor(a/length)), [x, y, z])
  bucketed_points["{0},{1},{2}".format(x, y, z)].append(point)

print(bucketed_points)