【发布时间】:2019-07-20 23:21:48
【问题描述】:
这看起来很简单,但我正在寻找一种计算效率非常高(快速)的方法来做到这一点。我有一组数据,例如 N x 4 numpy 数组。
data = [[U[0],x[0],y[0],z[0],
U[1],x[1],y[1],z[1],
....
U[N],x[N],y[N],z[N]]]
我想做的是编写一个函数,它将某些给定元素 x[N],y[N],z[N] 组合的实际数值作为输入并输出 U[ 的数值N] 在同一行。 没有描述数据的分析函数,它是纯数字的,所以我只需要给出一些物理位置值的组合,比如 (x[51],y[51],z[51]),它将输出值U 位于具有 x[51]、y[51]、z[51] 的行中。下面给出了一个关于它应该如何工作的例子: 假设 x[51] = 2.4,y[51] = 6.3,z[51] = 9.45 和 U[51] = 13.665
input >>
function(2.4,6.3,9.45)
output >>
13.665
因此,我的目标本质上是弄清楚如何编写能够以有效方式执行此操作的函数!
【问题讨论】:
-
欢迎来到 Stack Overflow。不幸的是,你的问题并不清楚,至少对我来说是这样。你说你有“一组数据”——所有
[U,x,y,z]组织在什么数据结构中?这对您的问题很重要,而且它显然不能是 Python 集。x2、y6和z9到底是什么?你的意思是x[2]等等?你是说U是一个包含U0、U1等值的元组,还是你的意思是别的?U_2,6,9是什么意思--你的意思是U(2, 6, 9)吗?等等。请使用 Python 符号和数据结构重写并澄清您的问题。 -
你能解释一下你是如何得到 f(2.4,6.3,9.45)=13.665 的吗?它背后的作用是什么?如果您不提供关系,则无法优化或编码未知
-
谢谢!我已经编辑了这个问题,希望现在更清楚了!任何帮助表示赞赏
-
data是否很长,您希望搜索次数与data的长度相似,多还是少?针对不同的情况有不同的算法。例如,如果您要进行大量搜索,您可以将 U 值存储在以 (x[i], y[i], z[i]) 为键的字典中。这需要一些时间来设置,但会立即为您提供搜索结果。
标签: python arrays data-manipulation