[英]How can I scale (x-axes) and shift data within array in Python?
我有一个代表一些信号f(x)的数据数组。 如果有一种方法可以通过仅使用第一个数组来执行操作,从而得到一个f(ax + b)数组?
对于“+ b”移位部分,我使用 numpy.insert 插入零数组以向左或向右移动信号,但不知道如何执行 f(ax)。 请记住,我不想 a*f(x) 并且简单地将数组乘以常数不是一种选择。
编辑:不幸的是,我无法访问生成第一个数组的 function,我认为重采样函数可以解决重调用问题。
根据数组的大小,有几种解决方案,最简单的方法是将数组f as f[a*x+b]
并检查它是否是有效索引。 这是创建移位数组的代码:
import numpy as np
def scale_shift(f, a , b):
i = np.arange(len(f))*a+b
y = f[i[(0<=i) & (i<len(f))]]
return y
n = 10
f = np.random.rand(n)
print(scale_shift(f,2,1))
请注意,新数组的长度将取决于班次。 如果要环绕边界,可以使用%
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.