我想要一个实现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语言的"核心",以确定不存在这样的习语,至少没有一个能够与优势相匹配的(普遍性,易读性,易于打字)一种专用方法.
这看起来很简单,但我无法弄明白.我有一个根据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) 我需要计算三维三角网格之间的体积交点和穿透深度(例如.obj格式),但我对计算几何是个新手.
在上一篇文章(网格到网格交叉点)和我的谷歌搜索中,我找到了一些可能适合这项工作的C++库:
虽然,我不确定哪一个最适合初学者.有什么建议吗?
基本上我想要创建:
我有一个带有对象的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) 给定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) 我有两个数据集,每个数据集至少有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(比较两个col1和col2每个),在这种情况下将打印一切,除了最后一个观察-观察1&2的比赛上col2,但不col1与观察3&4的比赛上col1但不是col2,即: …
这是我的两个清单;
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集的交集,但是我需要有一个自定义的相等性来做到这一点。进行交点时,是否可以直接指定“相等”?例如由于lambda表达式?
我知道可以通过重写eq来解决,但是我必须在具有不同“ 等式 ”的同一个类上做几个交集。
谢谢!
我有两个桶(无序,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)
编辑
O(1)看看为什么我需要这个以及我在之前的问题版本中想到的内容.
我知道有很多关于线路交叉点及其背后的数学的讨论.我熟悉数学.
这篇文章很好地解释了一个可以实现的算法:确定两条线是否相交
但是,我想知道是否可以直接在Google地图中执行此操作.我正在谷歌地图上绘制各种线条,我的目的是确定任何给定线条交叉/交叉的线条数量,如果是,则在地理上确定交叉点发生的位置.我想使用设定标准自动渲染线条,这些标准会对交叉点进行处罚并考虑其他优化标准.计算速度是一个因素,因为我有数千行.
下面是我的应用程序的示例图片,线条很有趣.
intersection ×10
python ×4
algorithm ×2
c++ ×2
javascript ×2
arrays ×1
dictionary ×1
distance ×1
google-maps ×1
lambda ×1
list ×1
matplotlib ×1
mesh ×1
numpy ×1
r ×1
raycasting ×1
three.js ×1