Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy中是否有通用的if函数?_Python_Numpy_Scipy_Pandas_Series - Fatal编程技术网

Python numpy中是否有通用的if函数?

Python numpy中是否有通用的if函数?,python,numpy,scipy,pandas,series,Python,Numpy,Scipy,Pandas,Series,我有三个系列。我需要按元素执行以下操作: 比较第一个系列和第二个系列的值 如果第一个较大,则从第三个系列中取元素的弧窦 否则取弧余弦 到目前为止,我做到了这一点: numpy.if(numpy.less(s1,s2),numpy.arcsin(s3),numpy.arccos(s3)) 不幸的是,if不起作用,因为numpy.if不存在。有没有办法克服这个问题?我想您正在寻找: 相当于 [xv if c else yv for (c,xv,yv) in zip(condition,x,y)]

我有三个系列。我需要按元素执行以下操作:

  • 比较第一个系列和第二个系列的值
  • 如果第一个较大,则从第三个系列中取元素的弧窦
  • 否则取弧余弦 到目前为止,我做到了这一点:

    numpy.if(numpy.less(s1,s2),numpy.arcsin(s3),numpy.arccos(s3))
    

    不幸的是,if不起作用,因为
    numpy.if
    不存在。有没有办法克服这个问题?

    我想您正在寻找:

    相当于

    [xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
    

    联合国大学做得很好。我建议使用一个不带
    的等价物,其中
    (但无论如何带
    numpy


    取第一项
    (False,0.1001674211615598,1.4706289056333368)
    2tanks!顺便说一句,我不知道用例是必须将函数作为其他函数的参数传递。您不能执行
    调用函数(
    
    where(condition, [x, y])
    
    [xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
    
    import numpy as np
    
    s1=[2,1,2,5,4,6]
    s2=[1,2,4,5,7,8]
    s3=[0.1,0.4,0.5,0.6,0.1,0.1]
    
    res = [xv if c else yv for (c,xv,yv) in zip([si1<si2 
              for si1,si2 in zip(s1,s2)], list(np.arcsin(s3)), list(np.arccos(s3)))]
    
    >>> 
    [(False, 0.1001674211615598, 1.4706289056333368), (True, 0.41151684606748806, 1.1592794807274085), (True, 0.52359877559829893, 1.0471975511965979), (False, 0.64350110879328437, 0.9272952180016123), (True, 0.1001674211615598, 1.4706289056333368), (True, 0.1001674211615598, 1.4706289056333368)]
    
    >>> res
    [1.4706289056333368, 0.41151684606748806, 0.52359877559829893, 
                0.9272952180016123, 0.1001674211615598, 0.1001674211615598]