Python中文
首页
教程
问答
标签
搜索
登录
注册
多维索引与线性索引的Numpy变换
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在寻找一种快速的方法,在Numpy中实现线性和多维索引之间的相互转换。在</p> <p>为了使我的用法具体化,我有大量的N个粒子的集合,每个粒子都分配了5个浮点值(维度),给出一个Nx5数组。然后我用数字化通过适当选择的料仓边界,在5维空间中为每个粒子指定一个料仓。在</p> <pre><code>N = 10 ndims = 5 p = numpy.random.normal(size=(N,ndims)) for idim in xrange(ndims): bbnds[idim] = numpy.array([-float('inf')]+[-2.,-1.,0.,1.,2.]+[float('inf')]) binassign = ndims*[None] for idim in xrange(ndims): binassign[idim] = numpy.digitize(p[:,idim],bbnds[idim]) - 1 </code></pre> <p>然后binassign包含与多维索引相对应的行。如果我想把多维索引转换成线性索引,我想我应该做如下事情:</p> ^{pr2}$ <p>这将为每个多维索引提供一个查找,以将其映射到一个线性索引。然后您可以使用:</p> <pre><code>mindx = numpy.unravel_index(x,linind.shape) </code></pre> <p>我遇到的困难是如何获取每行中包含多维索引的binassign(Nx5数组),并将其转换为1d线性索引,方法是使用它对线性索引数组linend进行切片。在</p> <p>如果有人有一个(或多个)行索引技巧,可以在多维索引和线性索引之间来回切换,从而将所有N个粒子的操作矢量化,我将非常感谢您的见解。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以简单地计算每个箱子的索引:</p> <pre><code>box_indices = numpy.dot(ndims**numpy.arange(ndims), binassign) </code></pre> <p>标量积只需做1*x0+5*x1+5*5*x2+…这通过NumPy的<code>dot()</code>非常有效地完成。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
1 回答
当用户登录到站点时,如何显示不同的导航栏
6 回答
当用户登录时,在Flask中向用户显示处理结果
2 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
10 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
7 回答
当用户的付款逾期2天时,从Django模型检索数据
8 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
8 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
8 回答
当用户确定打印数量时,使用Matplotlib打印动画
10 回答
当用户离开时是否可以删除整个网页?
6 回答
当用户给出一个单词时如何打印?
6 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
10 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
9 回答
当用户被更改时,消息不会来自web套接字
4 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
3 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
2 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
6 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
5 回答
当用户购买某个类别时,是否查找其他类别的销售?
2 回答
当用户转到上一页时,Django和芹菜插入操作
1 回答