python - 按索引写入多维数组
问题描述
我需要将处理后的数据写入多维数组缓存,但我不知道如何轻松做到这一点。
一个简单的例子:</p>
x = np.random.rand(5,2,5,3)
ind = np.array([True,True,False,True,False])
dat = np.random.rand(3,3,3)
我想要的样子:</p>
x[ind,-1][:,ind] = dat
但是索引的方法会产生一个副本,实际上并没有写入数据。我正在寻找是否有一种简单明了的方法可以做到这一点,谢谢。
解决方案
使用np.ix_
-
x[np.ix_(ind,[-1],ind)] = dat[:,None]
两行中的另一个np.ix_
-
r,c = np.ix_(ind,ind)
x[r,-1,c] = dat
另一个使用掩码外的整数索引 -
indx = np.flatnonzero(ind)
x[indx[:,None],-1,indx] = dat
推荐阅读
- ravendb - 使用通配符在字符串数组字段中搜索 RavenDb 方面
- java - Google Calendar Events Watch 401 未经授权
- c# - 通过 REST 服务更新记录
- php - 从文本文件中删除一些字符串
- delphi - Delphi FastReports - 如何更改行?
- python - 数据转换/准备
- c - 在 setjmp() + longjmp() 之间传递比“int”更多的数据
- html - 为什么输入和按钮不占用 div 的整个宽度?
- c++ - 使用宏简化 C++ 代码。错误:粘贴“<”和“字符串”不会给出有效的预处理标记
- excel - 如何随机化excel单元格中的值?