以编程方式选择要分配给NumPy数组的轴

时间:2018-11-08 07:28:31

标签: python arrays numpy

我有一个3D numpy数组。

我可以使用简单的索引来修改任意元素

D[:,:,0]=myval
D[:,:10,1]=list(range(10))

有时我需要在给定的索引处更改元素,并且未预先确定索引所指的轴。 我想通过更改变量来捕捉以下两种情况

D[:,:10,1]=list(range(10)) ->axis 1
D[:10,:,1]=list(range(10)) ->axis 0

类似的东西:

f(D,axis=0/1,index=1,newval)

1 个答案:

答案 0 :(得分:2)

我将对由辅助对象np.s_准备的切片对象使用索引元组。如果axis为0或1,则具有将list(range(10))分配给D[:10, :, 1]D[:, :10, 1]的效果。

idx = [np.s_[:], np.s_[:], 1] 
idx[axis] = np.s_[:10]
D[tuple(idx)] = list(range(10))