python – 如何使用scipy.interpolate.splrep插入曲线?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何使用scipy.interpolate.splrep插入曲线?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1315字,纯文字阅读大概需要2分钟。
内容图文
![python – 如何使用scipy.interpolate.splrep插入曲线?](/upload/InfoBanner/zyjiaocheng/731/6d4e3a8d1cd0485494b7329a523f630c.jpg)
使用一些实验数据,我不能为我的生活弄清楚如何使用splrep来创建B样条.数据如下:http://ubuntuone.com/4ZFyFCEgyGsAjWNkxMBKWD
这是一段摘录:
#Depth Temperature
1 14.7036
-0.02 14.6842
-1.01 14.7317
-2.01 14.3844
-3 14.847
-4.05 14.9585
-5.03 15.9707
-5.99 16.0166
-7.05 16.0147
这是一个关于x的深度和温度的情节:
这是我的代码:
import numpy as np
from scipy.interpolate import splrep, splev
tdata = np.genfromtxt('t-data.txt',
skip_header=1, delimiter='\t')
depth = tdata[:, 0]
temp = tdata[:, 1]
# Find the B-spline representation of 1-D curve:
tck = splrep(depth, temp)
### fails here with "Error on input data" returned. ###
我知道我正在做一些愚蠢的事,但我只是看不到它.
解决方法:
你只需要从最小到最大的值:).对于你来说,这不应该是一个问题,但是要注意未来的读者,如果深度是一个列表而不是一个numpy数组,深度[indices]会抛出一个TypeError!
>>> indices = np.argsort(depth)
>>> depth = depth[indices]
>>> temp = temp[indices]
>>> splrep(depth, temp)
(array([-7.05, -7.05, -7.05, -7.05, -5.03, -4.05, -3. , -2.01, -1.01,
1. , 1. , 1. , 1. ]), array([ 16.0147 , 15.54473241, 16.90606794, 14.55343229,
15.12525673, 14.0717599 , 15.19657895, 14.40437622,
14.7036 , 0. , 0. , 0. , 0. ]), 3)
帽子提示@FerdinandBeyer建议使用argsort而不是我的丑陋“压缩值,排序zip,重新赋值”方法.
内容总结
以上是互联网集市为您收集整理的python – 如何使用scipy.interpolate.splrep插入曲线?全部内容,希望文章能够帮你解决python – 如何使用scipy.interpolate.splrep插入曲线?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。