标签: intersection

intersection_update for dicts?

我想要一个实现intersection_update方法的字典类,在精神上类似于dict.update但仅将更新限制为调用实例中已存在的那些键(参见下面的一些示例实现).

但是,根据Wheel Reinvention Avoidance的精神,在我开始实现(以及编写测试等)具有这种附加功能的映射类之前,这样的事情是否已经存在于一个或多或少的标准模块中?


要清楚,intersection_update我想到的方法会做这样的事情:

def intersection_update(self, other):
    for k in self.viewkeys() & other.viewkeys():
        self[k] = other[k]
Run Code Online (Sandbox Code Playgroud)

...虽然实际的实现可能会尝试一些可能的优化,例如:

def intersection_update(self, other):
    x, y = (self, other) if len(self) < len(other) else (other, self)
    for k in x.iterkeys():
        if k in y:
            self[k] = other[k]
Run Code Online (Sandbox Code Playgroud)

编辑:在这篇文章的原始版本中,我曾写过"或者,有没有一个标准的Python成语,不需要实现[带有一个intersection_update方法]?",但我几乎立即删除它,因为,经过进一步的反思,我意识到这是一个弱回答的邀请,因为我已经足够了解Python语言的"核心",以确定不存在这样的习语,至少没有一个能够与优势相匹配的(普遍性,易读性,易于打字)一种专用方法.

python dictionary intersection

5
推荐指数
1
解决办法
367
查看次数

找到polyfit曲线的交点

这看起来很简单,但我无法弄明白.我有一个根据x,y数据计算的曲线.然后我有一条线.我想找到两者相交的x,y值.

这是我到目前为止所得到的.这是非常令人困惑的,并没有给出正确的结果.我可以查看图形并找到交点x值并计算正确的y值.我想删除这个人类步骤.

import numpy as np
import matplotlib.pyplot as plt
from pylab import * 
from scipy import linalg
import sys
import scipy.interpolate as interpolate
import scipy.optimize as optimize

w = np.array([0.0, 11.11111111111111, 22.22222222222222, 33.333333333333336, 44.44444444444444, 55.55555555555556, 66.66666666666667, 77.77777777777777, 88.88888888888889, 100.0])
v = np.array([0.0, 8.333333333333332, 16.666666666666664, 25.0, 36.11111111111111, 47.22222222222222, 58.333333333333336, 72.22222222222221, 86.11111111111111, 100.0])

z = np.polyfit(w, v, 2)
print (z)
p=np.poly1d(z)
g = np.polyval(z,w)
print (g)
N=100
a=arange(N)
b=(w,v)
b=np.array(b)
c=(w,g)
c=np.array(c)
print(c)
d=-a+99
e=(a,d)
print (e)
p1=interpolate.PiecewisePolynomial(w,v[:,np.newaxis])
p2=interpolate.PiecewisePolynomial(w,d[:,np.newaxis])

def pdiff(x): …
Run Code Online (Sandbox Code Playgroud)

python numpy intersection matplotlib curve-fitting

5
推荐指数
1
解决办法
2464
查看次数

网格到网格交叉的C++库:可用的是什么?

我需要计算三维三角网格之间的体积交点和穿透深度(例如.obj格式),但我对计算几何是个新手.

在上一篇文章(网格到网格交叉点)和我的谷歌搜索中,我找到了一些可能适合这项工作的C++库:

  • CGAL
  • 研究生预科课程
  • libigl
  • 迅速

虽然,我不确定哪一个最适合初学者.有什么建议吗?

c++ intersection mesh collision-detection

5
推荐指数
1
解决办法
3914
查看次数

Three.js:"选择工具"如何检测2D正方形和3D对象的交集

基本上我想要创建:

我有一个带有对象的3D地图,我想选择我屏幕上的2D框x1,y1到x2,y2中的所有对象.

任何想法如何做到这一点,因为我对如何开始毫无头绪.

提前致谢!

prevX并且prevY是鼠标按下的坐标:

function onDocumentMouseUp(event) {
  event.preventDefault();

  var x = (event.clientX / window.innerWidth) * 2 - 1;
  var y = -(event.clientY / window.innerHeight) * 2 + 1;

  var width = (x - prevX); //* window.innerWidth;
  var height = (y - prevY); //* window.innerHeight;
  var dx = prevX; //* window.innerWidth;
  var dy = prevY; //* window.innerHeight;

  console.log(
    dx + ',' + 
    dy + "," + 
    (dx + width) + "," + 
    (dy + height) + 
    ", …
Run Code Online (Sandbox Code Playgroud)

javascript intersection three.js raycasting

5
推荐指数
1
解决办法
2593
查看次数

具有限制的N个排序整数数组的交集

给定N排序的整数数组(没有重复),我想计算limit它们交集中的第一个整数.

例如,给定以下数组:

[2, 5, 7, 8, 10, 12, 13, 15, 20, 24]
[3, 4, 5, 6, 9, 10, 11, 17, 20]
[1, 2, 3, 5, 6, 10, 12, 20, 23, 29]
Run Code Online (Sandbox Code Playgroud)

交叉点是[5, 10, 20],所以如果limit = 2结果应该是[5, 10].

不应该改变给定的数组.

我的尝试如下.这里的游乐场.

是否有更有效(更快)的方法来实现这一目标?

会欣赏一个jsperf比较.


function intersection(sortedArrays, limit) {
  var arraysCount = sortedArrays.length;
  var indices = sortedArrays.map(function(array) { return 0; });
  var values, maxValue, valuesAreSame, reachedEnd, i, result = [];

  while …
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm intersection set-intersection

5
推荐指数
1
解决办法
302
查看次数

R中的非交叉值

我有两个数据集,每个数据集至少有420,500个观测值,例如

dataset1 <- data.frame(col1=c("microsoft","apple","vmware","delta","microsoft"),
                     col2=paste0(c("a","b","c",4,"asd"),".exe"),
                     col3=rnorm(5))

dataset2 <- data.frame(col1=c("apple","cisco","proactive","dtex","microsoft"),
                     col2=paste0(c("a","b","c",4,"asd"),".exe"),
                     col3=rnorm(5))
> dataset1
       col1    col2 col3
1 microsoft   a.exe    2
2     apple   b.exe    1
3    vmware   c.exe    3
4     delta   4.exe    4
5 microsoft asd.exe    5
> dataset2
       col1    col2 col3
1     apple   a.exe    3
2     cisco   b.exe    4
3    vmware   d.exe    1
4     delta   5.exe    5
5 microsoft asd.exe    2
Run Code Online (Sandbox Code Playgroud)

我想打印在所有的意见dataset1相交的dataset2(比较两个col1col2每个),在这种情况下将打印一切,除了最后一个观察-观察1&2的比赛上col2,但不col1与观察3&4的比赛上col1但不是col2,即: …

intersection r

5
推荐指数
1
解决办法
116
查看次数

Python - 两个列表列表的交集

这是我的两个清单;

k = [[1, 2], [4], [5, 6, 2], [1, 2], [3], [4], [5,9]]
kDash = [[1, 2], [4], [5, 6, 2], [1, 2], [3], [4], [5,6], [1,2]]
Run Code Online (Sandbox Code Playgroud)

我的输出应该如下;

[[1, 2], [4], [5, 6, 2], [1, 2], [3], [4]]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个输出?

先感谢您

python intersection list

5
推荐指数
1
解决办法
1432
查看次数

具有自定义相等性的Python相交

我想建立两个python集的交集,但是我需要有一个自定义的相等性来做到这一点。进行交点时,是否可以直接指定“相等”?例如由于lambda表达式?

我知道可以通过重写eq来解决,但是我必须在具有不同“ 等式 ”的同一个类上做几个交集。

谢谢!

python lambda intersection

5
推荐指数
1
解决办法
642
查看次数

找到两个数字桶之间的最短距离

我有两个桶(无序,1维数据结构)的数字,我想计算两个桶的任何元素之间的最小距离.有没有办法找到不同桶中任何数字之间的最短距离O(1)?什么是我最好的选择?

Input
[B1] 1, 5, 2, 347, 50
[B2] 21, 17, 345

Output
2 // abs(347 - 345)
Run Code Online (Sandbox Code Playgroud)

编辑

  • 我希望有更多的查找而不是插入
  • 任何桶中最小和最大元素之间的距离小于10 ^ 5
  • 任何桶中的元素数量小于10 ^ 5
  • 存储桶中的数字"几乎"排序 - 这些是事件的时间戳.桶中可能不到1%的元素出现故障
  • 存储桶中的元素数量很少,但我需要以2k/sec的平均速率查找,并定期删除过时的存储桶并用新存储桶替换它们,因此我希望我的查找能够在 O(1)

看看为什么我需要这个以及我在之前的问题版本中想到的内容.

c++ algorithm intersection distance euclidean-distance

5
推荐指数
1
解决办法
249
查看次数

确定线是否与谷歌地图上的其他线相交

我知道有很多关于线路交叉点及其背后的数学的讨论.我熟悉数学.

这篇文章很好地解释了一个可以实现的算法:确定两条线是否相交

但是,我想知道是否可以直接在Google地图中执行此操作.我正在谷歌地图上绘制各种线条,我的目的是确定任何给定线条交叉/交叉的线条数量,如果是,则在地理上确定交叉点发生的位置.我想使用设定标准自动渲染线条,这些标准会对交叉点进行处罚并考虑其他优化标准.计算速度是一个因素,因为我有数千行.

下面是我的应用程序的示例图片,线条很有趣.

在此输入图像描述

google-maps intersection line-intersection

5
推荐指数
0
解决办法
216
查看次数