在python中创建用于优化的“box”环境

2024-04-26 11:09:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从事一个与空间优化相关的项目。你知道吗

该项目基本上是在一个框中安排一组对象以使用最少的空间。我有物体的尺寸、表面积、体积、形状等(单位原来是米)

现在的问题是,我需要创建一个三维盒子容器来容纳一定数量的对象,在那里我可以跟踪坐标,如果它们是否由对象填充。假设“object 1”填充框的角,这样它就填充了坐标[0,0,0]到[150150]

注意,我把米转换成毫米,所以当我把它们放在一个3D数组中时,我可以忽略尺寸的小数点(尽量减少误差)。我试着用一个三维数组来表示盒子,但是当盒子的尺寸太大时,问题就出现了。因此,一盒1x1x1米等于1000 x 1000 x 1000毫米,这会导致内存错误

在创建我的算法可以在python中操作的“box”环境时,是否有其他选择?你知道吗

我尝试了matplotlib的pyplot 3d,但我无法跟踪坐标并为绘图指定特定的长度、宽度和高度,因为它实际上是用来绘制数据的,而不是存储数据。你知道吗


Tags: 数据项目对象数量object尺寸空间单位
1条回答
网友
1楼 · 发布于 2024-04-26 11:09:17

所以我从@f5r5e5d得到了这个想法,在创建numpy3d数组时,我指定了dtype。你知道吗

由于我需要一个至少包含1000 x 1000 x 1000个单元格的框,并且假设一个框可以容纳100-150个对象,因此我将只存储0到150之间的无符号int。你知道吗

所以在创建我的数组时

box = np.zeros((1750,1750,1750), dtype = 'u1')

其中u1是8位无符号整数。你知道吗

给内存错误,当我超过1750年,但对于一个10亿或更多的元素框,工程完美!你知道吗

相关问题 更多 >