Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Performance_Numpy_Scientific Computing - Fatal编程技术网

Python 同一类的多个对象各自在单个共享连续数组的各自块上操作的情况下的现有模式/方法?

Python 同一类的多个对象各自在单个共享连续数组的各自块上操作的情况下的现有模式/方法?,python,arrays,performance,numpy,scientific-computing,Python,Arrays,Performance,Numpy,Scientific Computing,我的情况如下,我正在构建一个网格(三维空间中的一系列点,每个点都指定了几个值/属性)。表示该网格的数据数组被传递到解算器中,解算器随后执行其操作 网格表示一组对象,因此网格上的数据是按对象指定的。但是,解算器并不关心将数据分组到这些单独的对象下,它只是一次对整个系统进行操作。因此,将所有网格数据放在大型Numpy阵列中是有效的,这样所有解算器操作都可以批量完成 目前,我有一个单一的网格类,但它很大,可以更干净。这对我来说很有意义,因为网格的数据是按对象指定的,所以我可以有一个子类来表示各个对象。

我的情况如下,我正在构建一个网格(三维空间中的一系列点,每个点都指定了几个值/属性)。表示该网格的数据数组被传递到解算器中,解算器随后执行其操作

网格表示一组对象,因此网格上的数据是按对象指定的。但是,解算器并不关心将数据分组到这些单独的对象下,它只是一次对整个系统进行操作。因此,将所有网格数据放在大型Numpy阵列中是有效的,这样所有解算器操作都可以批量完成

目前,我有一个单一的网格类,但它很大,可以更干净。这对我来说很有意义,因为网格的数据是按对象指定的,所以我可以有一个子类来表示各个对象。但是,为了避免不必要的复制,我希望所有数据仍然存储在全局Numpy数组中,其中每个对象都有一个对应于它的数组块的视图

我不确定如何构造全局网格类和子类来正确处理这个问题。我做了一些研究,但没有发现任何适用于这种特殊情况的东西。我发现的最接近我想要做的事情的例子是共享内存并行处理,其中每个处理器拥有一块共享内存。但是,在我的情况下,我希望同一类的多个对象各自拥有同一Numpy数组内存块

我可能还应该提到,这是在实时模拟类型的环境中运行的,其中对解算器进行了多个调用,并且在每次调用之间可能需要更新部分网格数据,因此我真的不想通过阵列副本将所有内容组合在一起