Python 按索引写入多维数组

Python 按索引写入多维数组,python,numpy,Python,Numpy,我需要将处理后的数据写入多维数组缓存,但我不知道如何轻松地做到这一点 一个简单的例子: x = np.random.rand(5,2,5,3) ind = np.array([True,True,False,True,False]) dat = np.random.rand(3,3,3) 我希望它是这样的: x[ind,-1][:,ind] = dat 但是索引方法会生成一个副本,而数据并没有实际写入。 我正在寻找是否有一种简单而直接的方法来做到这一点,谢谢。使用- 另一个用np.ix.-

我需要将处理后的数据写入多维数组缓存,但我不知道如何轻松地做到这一点

一个简单的例子:

x = np.random.rand(5,2,5,3)
ind = np.array([True,True,False,True,False])
dat = np.random.rand(3,3,3)
我希望它是这样的:

x[ind,-1][:,ind] = dat
但是索引方法会生成一个副本,而数据并没有实际写入。 我正在寻找是否有一种简单而直接的方法来做到这一点,谢谢。

使用-

另一个用
np.ix.
-

r,c = np.ix_(ind,ind)
x[r,-1,c] = dat
另一个是使用遮罩上的整数索引-

indx = np.flatnonzero(ind)
x[indx[:,None],-1,indx] = dat
indx = np.flatnonzero(ind)
x[indx[:,None],-1,indx] = dat