3D数组中每个元素的Numpy Index值

时间:2011-07-01 18:10:51

标签: python arrays numpy indexing element

我使用numpy mgrid命令创建了一个3D数组,这样每个元素都有一定的值,索引会保留空间信息。例如,如果在z轴(第三维)上求和,那么得到的2D数组可以在matplotlib中使用函数imshow()来获得具有不同分箱像素值的图像。

我的问题是:如何获取此网格中每个元素的索引值(a,b,c)?

我需要使用索引值来计算每个点与网格原点的相对角度。 (例如theta = sin-1(sqrt(x ^ 2 + y ^ 2)/ sqrt(x ^ 2 + y ^ 2 + z ^ 2))

也许这可以转换为另一个3D网格,其中每个元素都是数组[a,b,c]?

1 个答案:

答案 0 :(得分:1)

我不清楚你的意思,但是如果你正在寻找包含索引x,y和z的3d数组,那么以下内容可能适合你的需要;假设您的数据保存在名为“abc”的3D数组中:

import numpy as nm
x,y,z = nm.mgrid[[slice(dm) for dm in abc.shape]]