python – scipy.interpolate.interpnd抱怨’Delaunay’对象没有
发布时间:2020-12-16 21:39:21 所属栏目:Python 来源:网络整理
导读:几个月前我写的一些代码正在粉碎,并且由于某些原因它不再起作用……简而言之,我使用scipy.interpolate.LinearNDInterpolator对象来插入模型并与数据进行比较.现在,当我尝试使用我想要插值的坐标调用插值器对象时,我收到以下错误: In [9]: a([[3500,3.5,1.5]
几个月前我写的一些代码正在粉碎,并且由于某些原因它不再起作用……简而言之,我使用scipy.interpolate.LinearNDInterpolator对象来插入模型并与数据进行比较.现在,当我尝试使用我想要插值的坐标调用插值器对象时,我收到以下错误:
In [9]: a([[3500,3.5,1.5]]) AttributeError Traceback (most recent call last) <ipython-input-9-91f2103e7a0c> in <module>() ----> 1 a([[3500,1.5]]) /usr/lib64/python2.7/site-packages/scipy/interpolate/interpnd.so in scipy.interpolate.interpnd.NDInterpolatorBase.__call__ (scipy/interpolate/interpnd.c:3133)() /usr/lib64/python2.7/site-packages/scipy/interpolate/interpnd.so in scipy.interpolate.interpnd.LinearNDInterpolator._evaluate_double (scipy/interpolate/interpnd.c:3954)() /usr/lib64/python2.7/site-packages/scipy/interpolate/interpnd.so in scipy.interpolate.interpnd.LinearNDInterpolator._do_evaluate (scipy/interpolate/interpnd.c:4684)() AttributeError: 'Delaunay' object has no attribute 'simplices' 我之前从未见过这个错误,代码以前也有用过.在我不知道的scipy中,有些东西发生了变化吗? 谢谢你的期待! 解决方法
我想你使用的是旧版本的库:
Delaunay库有两个不同的simplices访问器: 在两个Delaunay.vertices中标记为“已弃用”. 在Ubuntu 13.04上,simplices调用不存在,因为它仍然使用scipy 0.11.0: 尝试使用这个最小的例子或只是重写你的simplices调用顶点: from __future__ import print_function import numpy as np from scipy.spatial import Delaunay import sys my_molecule = np.random.rand(400,3) #points for query points = np.random.rand(1000,3) #points used for Triangulation diag = Delaunay(points) simplices = diag.find_simplex(my_molecule) for point,simplex in zip(my_molecule,simplices): if simplex == -1: print ("Point not included in diag.") continue print ("Doing vertices call: ") spoints = diag.vertices[simplex] print ("Doing simplices call: ") spoints = diag.simplices[simplex] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |