Numpy获取3D数组中每个元素的索引值
我有一个用numpy的mgrid命令创建的三维数组,这样每个元素都有特定的值,同时索引也保留了空间信息。举个例子,如果我对z轴(第三个维度)进行求和,那么得到的二维数组就可以用matplotlib里的imshow()函数来显示,这样就能得到一个不同像素值的图像。
我想问的是:我该如何获取这个网格中每个元素的索引值(a,b,c)呢?
我需要这些索引值来计算每个点相对于网格原点的相对角度。(比如,theta=sin-1(sqrt(x^2+y^2)/sqrt(x^2+y^2+z^2)))
也许这可以转换成另一个三维网格,其中每个元素就是数组[a,b,c]?
1 个回答
1
我不太明白你的意思,不过如果你是在寻找包含 x、y 和 z 这些索引的三维数组,那么下面的内容可能对你有帮助;假设你的数据存储在一个叫 "abc" 的三维数组里:
import numpy as nm
x,y,z = nm.mgrid[[slice(dm) for dm in abc.shape]]