Numpy 如何索引三维阵列
这个问题在这里已经有了答案: 用(n-1)d数组1答案索引n维数组 我认为这里的答案更直截了当(我马上就理解了这个问题)。重复的帖子很棒,我把它们和一个常用的索引功能联系起来,但我需要时间去理解 我想通过沿轴查询的索引从3d数组中提取数据,但我不知道如何编写它Numpy 如何索引三维阵列,numpy,Numpy,这个问题在这里已经有了答案: 用(n-1)d数组1答案索引n维数组 我认为这里的答案更直截了当(我马上就理解了这个问题)。重复的帖子很棒,我把它们和一个常用的索引功能联系起来,但我需要时间去理解 我想通过沿轴查询的索引从3d数组中提取数据,但我不知道如何编写它 #data: arr= np.array([[[ 0.000, 0.200], [ 0.000, 0.100], [-0.932, -0.073]],
#data:
arr= np.array([[[ 0.000, 0.200],
[ 0.000, 0.100],
[-0.932, -0.073]],
[[ 0.000, 0.000],
[-0.932, -0.073],
[-1.626, -0.900]],
[[-0.132, -0.073],
[-1.626, -0.900],
[-1.802, -0.688]],
[[-1.626, -0.900],
[-1.802, -0.688],
[-3.059, -1.190]]])
# This is the index
idx= np.array([[0, 1],
[1, 2],
[0, 0],
[0, 1]])
# Expected output
array([[ 0.000, 0.100],
[-0.932, -0.900],
[-0.132, -0.073],
[-1.626, -0.688],
# If it is 2d it is like this:
axis=0:
arr[idx,np.arange(arr.shape[1])]
axis=1:
arr[np.arange(arr.shape[0]),idx]
但是我不知道如何在3d阵列上写,我希望能得到帮助。谢谢。您不太清楚适用于哪个轴
idx
。我需要匹配值来查看模式
无论如何,这是索引
In [88]: arr[np.arange(4)[:,None], idx, np.arange(2)]
Out[88]:
array([[ 0. , 0.1 ],
[-0.932, -0.9 ],
[-0.132, -0.073],
[-1.626, -0.688]])
这两个Arange是以相同的(4,2)形状编写的,它们与
idx
您不太清楚哪个轴应用了idx
。我需要匹配值来查看模式
无论如何,这是索引
In [88]: arr[np.arange(4)[:,None], idx, np.arange(2)]
Out[88]:
array([[ 0. , 0.1 ],
[-0.932, -0.9 ],
[-0.132, -0.073],
[-1.626, -0.688]])
这两个Arange是以与idx相同的(4,2)形状编写的。谢谢你帮助我。谢谢你帮助我。