如何将定义的函数应用于Python中的数组?

2024-06-01 02:50:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个函数:time_reversal,它反转我的时间分量“n”;和time_shift,它以“k”的数量移动我的时间坐标“n”。这些是功能:

#time_reversal    

def time_reversal(n):                              
        ind = arange(n.size-1,-1,-1)                   
        n_r=n[ind]                                     
        return n_r                                        
# time_shift                                          
def time_shift(n,k):                               
        N=n.size                                          
        if k>=0:                                          
           N_ts=concatenate( (zeros(k),n[0:N-k]), 0)  
        else:                                              
           k=-k                                             
        N_ts=concatenate( (n[k:N],zeros(k)), 0)    
        return N_ts  

给出方程:y[n]=y[n]+x[k]*h[n-k] 我需要把这个方程应用到“h”数组。我需要把“n”倒过来,然后把它换成“k”的量。数组“x”保持不变。你知道吗

问题是我不知道如何将这些函数应用于我的问题。我试着把“n\r”和“n\ts”替换成这样:y[n]=y[n]+x[k]*h[n_r-N_ts],但它给了我错误。 编辑:程序

from numpy import*
from matplotlib.pyplot import*

x=array([2,1,-1])
h=array([1,2,1,0,1,2,1])
y=array([0,0,0,0,0,0,0,0,0])

def time_reversal(n):                              
        ind = arange(n.size-1,-1,-1)                   
        n_r=n[ind]                                     
        return n_r                                        

def time_shift(n,k):                               
        N=n.size                                          
        if k>=0:                                          
           N_ts=concatenate( (zeros(k),n[0:N-k]), 0)  
        else:                                              
           k=-k                                             
        N_ts=concatenate( (n[k:N],zeros(k)), 0)    
        return N_ts  

for n in range(0,9):
     for k in range(0,3):                                       
        y[n]=y[n]+x[k]*h[n_r-N_ts]                         
print("y = ",y)

它说n\u r和n\u ts由于某种原因没有定义。你知道吗


Tags: 函数sizereturnifshifttimedef时间
1条回答
网友
1楼 · 发布于 2024-06-01 02:50:31

我不完全确定这是否是您想要的,但是有一个叫做map函数的函数允许您对数组的每个元素应用一个函数,并返回一个包含结果的新数组。例如:

def add2(n):
    return n + 2

lst = [1, 2, 3]
print(list(map(add2, lst))) # convert from map object to list

结果列表是[3, 4, 5]。你知道吗

希望这有帮助。你知道吗

相关问题 更多 >