我正在试图计算最近的邻居聚类,在一个从scikit-learn的DictVectorizer返回的稀疏矩阵上。然而,当我试图用pairwise.euclidean_distances和pairwise.pairwise_distances计算距离矩阵时,我会使用‘欧几里得’距离得到一个错误消息。我的印象是科学学习可以计算出这些距离矩阵。
我的矩阵非常稀疏,形状为:<364402x223209 sparse matrix of type <class 'numpy.float64'> with 728804 stored elements in Comp
我正在尝试通过scipy的KD_tree类创建一个kd-tree,该类是由对象而不是纯坐标构建的。对象有一个(x,y)元组,树就是基于这个元组的,但是我想把对象本身作为node /包含在节点中。 有没有什么“简单”的方法来解决这个问题?看一看scipy kdtree with meta data,它说使用第三维作为对象指针(?)。然后,树不会将该值应用于邻居的比较吗?我也和这位先生在同一条船上,创建我自己的kd-tree现在跳过会很好。 PS。这是我的第一篇文章,所以请对我温柔点;)
我有一个1000个随机3D点的数组&我对最接近给定点的10点感兴趣。
我检查了J.F. Sebastian提供的2种解决方案,即蛮力法和KD树法。
虽然两者给出了最接近点的相同指数,但它们对距离给出了不同的结果。
import numpy as np
from scipy.spatial import KDTree
a = 100 * np.random.rand(1000,3)
point = a[np.random.randint(0, 1001)] # point chosen at random
# KD Tree
tree = KDTree(a, leafsize=a.s
在Python3.4上运行最小的KDTree示例,即
from scipy import spatial
x, y = np.mgrid[0:5, 2:8]
tree = spatial.KDTree(zip(x.ravel(), y.ravel()))
我知道这个错误:
File "C:/_work/kdtree.py", line 9, in <module>
tree = spatial.KDTree(zip(x.ravel(), y.ravel()))
File "C:\Python34\lib\site-packages\scipy\spatial
这是我的数据集:
我试图为数据集中的所有点找到最近的点。这些点是地球表面的纬度和经度。当然,最近的点不可能是同一点。
我尝试了本文中列出的KDTree解决方案:,并将海报的随机点(由np.random.uniform生成)更改为自己的数据集。
我希望得到一个充满距离的数组,但是,我得到了一个满是零的数组,其中包含一些数字,比如2.87722e-06和0.616582。这不是我想要的。我在我的数据集上尝试了另一个解决方案,NearestNeighbours,并得到了同样的结果。所以,我做了一些调试,缩小了他使用的随机数的范围,使它更接近我自己的数据集。
import numpy as np
im
我想从网格中删除存储在NumPy数组中的一些顶点。如何根据顶点索引或坐标在pymeshlab中选择这些顶点?谢谢!
import pymeshlab
from scipy.spatial import KDTree
def remove_background(subdir, ms):
# load joint points
joint_arr = load_joint_points(subdir)
# get a reference to the current mesh
m = ms.current_mesh()
# get numpy arra
我试着测量每个点到最近一组点的最短欧几里德距离。使用下面,我有6个独特的点显示在x,y在两个不同的时间点。我在x_ref, y_ref中记录了一个独立的xy点,它通过一个半径。所以对于这个半径之外的每个点,我想要找到半径内任意一点的最短距离。对于半径内的点,只需返回0。
calculate_distances测量每个特定点与其余点之间的距离。我希望返回半径内最近的点的距离。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import pdist
我有一个关于Spatstat中的KEST函数的非常简单的问题。我正在使用Spatstat中的KEST函数来评估数据集中的空间随机性。我上传了分散在伦敦的经纬度和经度值,并将它们转换为PPP对象,使用ripras函数指定空间域。当我在ppp上运行KEST分析并绘制图形时,我最终得到了x上的r值,但是虽然我知道这是一个距离度量,但我不知道它使用的是什么单位。我得到了这个摘要输出:
Planar point pattern: 113 points
Average intensity 407.9378 points per square unit
Coordinates are given to 9
我有一个表示道路网络的图形数据结构(节点是道路中的点/交叉点,边是道路)。Node对象有一个与之关联的纬度和经度。
我正在使用Accord的KDTree类查找给定GPS坐标的附近节点。
var nodes = graph.Nodes;
//Initialize KD-tree with distance function defined as the cartesian approximate distance (in meters)
Func<double[], double[], double> distanceFunc = (
当使用scipy.spatial.distance.pdist创建压缩距离矩阵并将其传递给ward时,我得到以下错误:
Valid methods when the raw observations are omitted are 'single', 'complete', 'weighted', and 'average' error.
但是文档中说,linkage()函数需要一个凝聚的距离矩阵。我该如何解决这个问题?
foo = np.random.randint(3, size=(10,10))
scipy.spatial
假设我有大约100组100分,想找出哪个点在给定的距离内。我有两种实现,一种是使用k-d树,另一种是简单地获得成对距离:
from scipy.spatial.distance import cdist
from scipy.spatial import KDTree
from itertools import combinations
import numpy
import time
pts = [numpy.random.randn(100,2) for x in range(100)]
start = time.time()
for p1, p2 in combinations(
我目前正在用python创建一个2d游戏。我必须计算出最接近的敌人,这样玩家才能知道该瞄准哪一个。我有以下功能来完成这项任务:
import math
def find_closest(character: tuple, enemies: list) -> (int, int):
"""
Finds the closest enemy in enemies
:param character: An (x, y) representing the position of the character\n
:param enemies
我正在寻找半径在1公里以内的所有最近的邻居。这是我的脚本,用来构造树和搜索最近的点,
from pysal.cg.kdtree import KDTree
def construct_tree(s):
data_geopoints = [tuple(x) for x in s[['longitude','latitude']].to_records(index=False)]
tree = KDTree(data_geopoints, distance_metric='Arc', radius=pysal.cg.RADIUS_E