【问题标题】:Error running SciPy KDTree example运行 SciPy KDTree 示例时出错
【发布时间】:2015-02-17 08:33:18
【问题描述】:

在 Python 3.4 上使用 Scipy,当我运行最小的 KDTree 示例时,here:

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.py", line 229, in __init__
self.n, self.m = np.shape(self.data)
ValueError: need more than 0 values to unpack

我做错了什么?我尝试将两者与 scipy 14.0 和 15.1 一起使用

【问题讨论】:

    标签: scipy python-3.4 kdtree


    【解决方案1】:

    这是文档字符串中的错误。 KDTree 的参数必须是“array_like”,但在 Python 3 中,zip 返回的对象不是“array_like”。您可以将示例更改为

    tree = spatial.KDTree(list(zip(x.ravel(), y.ravel())))
    

    或者,您可以使用np.column_stack,而不是使用zip 创建KDTree 的输入:

    x, y = np.mgrid[0:5, 2:8]
    xy = np.column_stack((x.ravel(), y.ravel()))
    tree = spatial.KDTree(xy)
    

    无论是哪种更改,示例的其余部分都应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 2018-08-05
      • 2013-08-10
      相关资源
      最近更新 更多