当我开始学习numpy有N维数组时,我感到很惊讶。我是一名程序员,我认为没有人比2D阵列更多地使用它。实际上我甚至无法超越2D阵列。我不知道如何考虑3D,4D,5D阵列或更多。我不知道在哪里使用它们。
您能否举例说明3D,4D,5D等阵列的使用情况?如果使用numpy.sum(array, axis=5)
表示5D阵列会发生什么?
答案 0 :(得分:1)
一些简单的例子是:
n x m
二维数组p
- 向量表示为n x m x p
3D矩阵,可能是计算图像渐变所致 numpy.sum(array, axis=5)
对5D阵列无效(因为轴从0开始编号)
答案 1 :(得分:0)
很难提出实际应用,但我可以举一个简单的3D示例。
想象一下拍摄3D世界(例如游戏或模拟)并将其分成相同大小的立方体。每个立方体可以包含某种特定值(一个很好的例子是气候建模的温度)。然后矩阵可以用于进一步的操作(简单的,例如计算它的转置,它的行列式等......)。
我最近有一项任务涉及在2D空间中建模流体动力学。我可以很容易地将它扩展到3D工作,这需要我使用3D矩阵。
您可能还希望进一步扩展矩阵以适应时间,这将使它们成为4D。最后,它实际上归结为您正在处理的具体问题。
但最后,2D矩阵仍用于3D图形(使用4x4增强矩阵)。
答案 2 :(得分:0)
例如,3D阵列可用于表示电影,即随时间变化的2D图像。 对于给定时间,前两个轴将给出图像中像素的坐标,并且相应的值将给出该像素的颜色或灰度级。然后第三个轴代表时间。对于每个时段,您都拥有完整的图像。
在此示例中,numpy.sum(array,axis = 2)将在给定像素中集成曝光。如果你想一部在光线不足的情况下拍摄的电影,你可以想到做那样的事情就可以看到任何东西。
答案 3 :(得分:0)
有很多例子......你试图表达它的方式可能是错误的,让我们举一个简单的例子:
然后通过以下方式标识框:行,列,楼层和货架中的索引。
项目由以下标识:行,列,楼层,货架中的索引,框中的索引。
基本上,模拟这个问题的一种方法(不是最好的......)就是使用5D数组。
答案 4 :(得分:0)
它们非常适用于科学计算。例如,现在,我正在运行以4D阵列输出数据的模拟:具体来说
|时间| x位置| y位置z-position |。
几乎所有现代空间模拟都将使用多维数组,以及计算机游戏编程。