不使用切片的Numpy索引

时间:2015-05-18 08:51:58

标签: python numpy

假设我有一个形状为(4,3,2)的数组A. 反正有没有使用切片语法来代表A [:,1,1]或A [3,:,0]这样的东西?

假设我有一个形状为(4,3,2)的可能性表p(A,B,C)。给定两个变量的两个状态,我需要知道另一个变量的可能性表。但我不知道哪两个变量'我会事先知道的。所以我不能使用切片语法。

pABC=np.array([
    [[ 0.9 ,  0.3 ],
    [ 0.8 ,  0.4 ],
    [ 0.1 ,  0.01]],
   [[ 0.08,  0.05],
    [ 0.17,  0.05],
    [ 0.01,  0.01]],
   [[ 0.01,  0.05],
    [ 0.01,  0.15],
    [ 0.87,  0.97]],
   [[ 0.01,  0.6 ],
    [ 0.02,  0.4 ],
    [ 0.02,  0.01]]])

有时我需要索引[:,0,1],有时我需要索引[2,:,0]。我需要为这个索引操作编写一个函数。所以我不能在我的函数中使用切片,因为我不知道需要切片的轴。

谢谢!

1 个答案:

答案 0 :(得分:1)

感谢@cel。事实证明,slice()正是我想要的。

":"在numpy是切片(无)。所以A [1,:,2]等于A [1,切片(无),2]。

然后我可以在我想要的任何维度上切片。

玩得开心!