scipy.cKDTree.sparse_distance_matrix的奇怪行为

时间:2015-12-03 06:14:23

标签: python numpy scipy sparse-matrix kdtree

我正在尝试使用<script> function display(){ var xmlhttp = new XMLHttpRequest(); var url = serverURL() + "/gwifiv2.php"; xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { } } xmlhttp.open("GET", url, true); xmlhttp.send(); } </script> </head> <body> <div data-role="page" data-theme="a"> <div data-role="header" data-position="inline"> <a href="index.html" data-icon="home" data-theme="a"><br></a> <h1>Issues</h1> <a href="domain.html" data-icon="arrow-l" data-theme="a"><br></a> </div> <div data-role="content" data-theme="a"> <div data-role="main" class="ui-content"> <table data-role="table" data-mode="columntoggle" class="ui-responsive ui-shadow" id="myTable"> <thead> <form> <input type="button" value="Display" onclick="display()"> </form> <tr> <th>Unique ID</th> <th data-priority="1">Date</th> <th data-priority="2">Status</th> <th data-priority="3">Ticket</th> </tr> </thead> 计算一组点的相互距离。最后我想将这个用于scipy.cKDTree.sparse_distance_matrix点,其维度高达10**6,但作为一个例子,对于二维中的15个数据点,我们期望距离矩阵有15 * 15个元素,其中其中15个为零。因此矩阵中有210个非零元素。但是15只返回160个非零值:

sparse_distance_matrix
  

160

我不明白我错过了什么。请注意,我已将import numpy as np from scipy.spatial import cKDTree NP=15 dimension=2 seed=1 state = np.random.RandomState(seed) pts=state.random_sample([NP,dimension]) tree=cKDTree(pts) f = cKDTree.sparse_distance_matrix(tree,tree,5.) print np.vstack(f.nonzero()).T.shape[0] 设置为5.0,但可能的最长距离为max_distance,因此不应将任何条目替换为零。我正在使用sqrt(2)版本'0.13.3`。

修改

更新到0.16解决了这个问题。

1 个答案:

答案 0 :(得分:1)

在他的评论中提及@ Warren Weckesser,这是因为旧版本的scipy中有issue。在scipy 0.16,一切都很好!