繁体   English   中英

如何在 Python 的数组内缩放(x 轴)和移动数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM