- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的时间序列数据本质上是周期性的(而且是正弦曲线的)。我根据周期对数据进行了重新定相,以便所有点都位于 0 和 1 之间。您可以认为这与从 0 到周期 2pi 的正弦波中采样点相同。这是一个典型案例:
我尝试使用各种 scipy.interpolate
函数插入这些数据,例如:
>>> scipy.interpolate.UnivariateSpline(x,y)(numpy.linspace(0, 0.99, 100))
array([ 15.13403109, 15.10173144, 15.07070986, 15.04094629,
15.01242068, 14.98511296, 14.95900308, 14.93407098,
14.91029659, 14.88765987, 14.86614074, 14.84571915,
14.82637504, 14.80808836, 14.79083904, 14.77460702,
14.75937224, 14.74511465, 14.73181418, 14.71945078,
14.70800439, 14.69745494, 14.68778239, 14.67896666,
14.6709877 , 14.66382545, 14.65745985, 14.65187085,
14.64703838, 14.64294238, 14.6395628 , 14.63687957,
14.63487264, 14.63352194, 14.63280742, 14.63270902,
14.63320668, 14.63428034, 14.63590994, 14.63807542,
14.64075672, 14.64393378, 14.64758655, 14.65169496,
14.65623896, 14.66119848, 14.66655347, 14.67228387,
14.67836961, 14.68479064, 14.69152691, 14.69855834,
14.70586488, 14.71342648, 14.72122306, 14.72923458,
14.73744098, 14.74582219, 14.75435815, 14.76302882,
14.77181411, 14.78069399, 14.78964838, 14.79865724,
14.80770049, 14.81675809, 14.82580996, 14.83483606,
14.84381632, 14.85273069, 14.8615591 , 14.87028149,
14.87887781, 14.887328 , 14.895612 , 14.90370974,
14.91160117, 14.91926624, 14.92668487, 14.93383702,
14.94070261, 14.9472616 , 14.95349392, 14.95937952,
14.96489834, 14.9700303 , 14.97475537, 14.97905347,
14.98290455, 14.98628855, 14.98918541, 14.99157507,
14.99343747, 14.99475255, 14.99550026, 14.99566053,
14.9952133 , 14.99413852, 14.99241612, 14.99002605])
例如,x 为(请注意某些值重复):
>>> x
array([ 0. , 0.01 , 0.016, 0.018, 0.024, 0.029, 0.034, 0.036,
0.042, 0.046, 0.048, 0.053, 0.058, 0.062, 0.069, 0.071,
0.072, 0.079, 0.083, 0.091, 0.096, 0.102, 0.102, 0.106,
0.108, 0.111, 0.112, 0.112, 0.122, 0.131, 0.135, 0.136,
0.137, 0.145, 0.164, 0.168, 0.172, 0.174, 0.177, 0.178,
0.179, 0.197, 0.202, 0.205, 0.206, 0.213, 0.215, 0.222,
0.229, 0.233, 0.235, 0.239, 0.239, 0.241, 0.248, 0.255,
0.258, 0.259, 0.262, 0.264, 0.266, 0.267, 0.276, 0.28 ,
0.281, 0.281, 0.285, 0.289, 0.292, 0.292, 0.294, 0.295,
0.299, 0.304, 0.306, 0.309, 0.313, 0.317, 0.32 , 0.32 ,
0.335, 0.34 , 0.341, 0.353, 0.357, 0.359, 0.364, 0.368,
0.369, 0.369, 0.388, 0.39 , 0.394, 0.396, 0.399, 0.401,
0.404, 0.406, 0.407, 0.413, 0.415, 0.418, 0.423, 0.43 ,
0.438, 0.439, 0.443, 0.445, 0.454, 0.455, 0.475, 0.478,
0.478, 0.48 , 0.48 , 0.482, 0.485, 0.486, 0.488, 0.488,
0.498, 0.498, 0.499, 0.508, 0.514, 0.525, 0.527, 0.531,
0.535, 0.536, 0.546, 0.547, 0.551, 0.553, 0.556, 0.563,
0.57 , 0.579, 0.584, 0.59 , 0.594, 0.595, 0.596, 0.606,
0.606, 0.619, 0.628, 0.631, 0.632, 0.633, 0.638, 0.64 ,
0.649, 0.652, 0.654, 0.655, 0.669, 0.674, 0.684, 0.688,
0.689, 0.692, 0.697, 0.697, 0.703, 0.703, 0.703, 0.704,
0.706, 0.715, 0.715, 0.717, 0.72 , 0.721, 0.73 , 0.739,
0.746, 0.75 , 0.751, 0.752, 0.757, 0.762, 0.766, 0.766,
0.783, 0.785, 0.787, 0.79 , 0.791, 0.791, 0.806, 0.809,
0.81 , 0.813, 0.815, 0.816, 0.816, 0.818, 0.82 , 0.823,
0.839, 0.849, 0.857, 0.859, 0.862, 0.864, 0.868, 0.869,
0.875, 0.877, 0.887, 0.888, 0.893, 0.896, 0.905, 0.907,
0.908, 0.925, 0.926, 0.936, 0.947, 0.949, 0.955, 0.957,
0.962, 0.97 , 0.972, 0.976, 0.979, 0.984, 0.985, 0.986,
0.993, 1. ])
例如,y 是:
>>> y
array([ 15.048, 15.046, 15.046, 15.037, 15.035, 15.048, 15.034,
15.041, 15.03 , 15.034, 15.037, 15.04 , 15.038, 15.028,
14.998, 14.976, 15.012, 15.007, 14.996, 14.979, 14.922,
14.876, 14.881, 14.931, 14.912, 14.904, 14.906, 14.897,
14.871, 14.786, 14.778, 14.78 , 14.782, 14.788, 14.729,
14.735, 14.661, 14.722, 14.668, 14.657, 14.715, 14.647,
14.607, 14.627, 14.607, 14.625, 14.619, 14.592, 14.583,
14.596, 14.596, 14.595, 14.584, 14.593, 14.601, 14.597,
14.605, 14.596, 14.61 , 14.6 , 14.582, 14.609, 14.606,
14.619, 14.601, 14.612, 14.619, 14.612, 14.612, 14.618,
14.619, 14.62 , 14.62 , 14.619, 14.633, 14.629, 14.611,
14.62 , 14.629, 14.618, 14.645, 14.634, 14.633, 14.644,
14.647, 14.649, 14.67 , 14.661, 14.658, 14.67 , 14.667,
14.682, 14.676, 14.675, 14.68 , 14.67 , 14.673, 14.676,
14.68 , 14.654, 14.689, 14.699, 14.694, 14.691, 14.699,
14.703, 14.683, 14.691, 14.706, 14.703, 14.715, 14.73 ,
14.727, 14.72 , 14.729, 14.718, 14.712, 14.721, 14.734,
14.722, 14.738, 14.724, 14.73 , 14.729, 14.735, 14.751,
14.741, 14.752, 14.753, 14.765, 14.758, 14.759, 14.766,
14.766, 14.774, 14.774, 14.768, 14.775, 14.789, 14.788,
14.793, 14.787, 14.783, 14.808, 14.789, 14.793, 14.804,
14.804, 14.793, 14.805, 14.808, 14.811, 14.825, 14.816,
14.827, 14.827, 14.827, 14.838, 14.83 , 14.839, 14.848,
14.844, 14.834, 14.838, 14.845, 14.861, 14.856, 14.847,
14.853, 14.868, 14.845, 14.857, 14.859, 14.859, 14.868,
14.853, 14.871, 14.873, 14.875, 14.893, 14.882, 14.883,
14.884, 14.899, 14.904, 14.907, 14.909, 14.903, 14.909,
14.909, 14.91 , 14.911, 14.904, 14.909, 14.933, 14.923,
14.924, 14.907, 14.928, 14.913, 14.939, 14.944, 14.946,
14.952, 14.935, 14.946, 14.943, 14.948, 14.952, 14.957,
14.974, 14.981, 14.967, 14.967, 14.977, 14.987, 14.97 ,
15.013, 14.98 , 15.011, 15.004, 15.013, 15. , 15.017,
15.02 , 15.047, 15.03 , 15.05 , 15.029, 15.043, 15.038,
15.03 , 15.042, 15.052])
该函数在 0 处的计算结果应与 1 处的值(几乎)相同,因为基础数据是周期性的(就像我们期望对正弦进行插值的函数在 0 处与 2pi 处具有相同的值一样)。然而,它显然具有较长的左偏,并且与 0 附近的数据不太相似。0 和 1 处的值之间的差异大约为 0.144,大于数据集的标准差。
有什么想法吗?我可以在设置固定点时以某种方式进行插值,即边界的开始和结束应该大致相同的规范吗?
最佳答案
splrep
/splev
函数对声称支持周期样条,参见per
参数。
它在 UnivariateSpline 中不可用是一个错误。这是一个最小的实现(但最好不要使用它,因为访问 _data
可能不向后兼容):
from scipy.interpolate import UnivariateSpline, splrep
class PeriodicUnivariateSpline(UnivariateSpline):
def __init__(self, x, y, w=None, bbox=[None]*2, k=3, s=0):
#_data == x,y,w,xb,xe,k,s,n,t,c,fp,fpint,nrdata,ier
tck, fp, ier, msg = splrep(x, y, k=k, w=w, xb=bbox[0], xe=bbox[1],
s=s, per=1, full_output=1)
self._data = (x,y,w,bbox[0],bbox[1],k,s,len(tck[0]),tck[0],tck[1],
fp,None,None,ier)
self._reset_class()
关于python - 使用 'fixed points' 在 Python 中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490533/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!