Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 如何从函数中删除负输出?_Python_Python 3.x_Numpy - Fatal编程技术网

Python 如何从函数中删除负输出?

Python 如何从函数中删除负输出?,python,python-3.x,numpy,Python,Python 3.x,Numpy,我使用了一个函数来计算两个值之间的差值。通过打印下面函数的输出,答案范围为-5到4。但是,我只希望函数仅显示肯定答案(即:1到4)。 是否可以忽略负值而不改变x的边界,也不改变a的值 import numpy as np L = 10 a = 5 def position(x,a): return x-a x = np.arange(0.0, L, 1) print (position(x,a)) [-5. -4. -3. -2. -1. 0. 1. 2. 3.

我使用了一个函数来计算两个值之间的差值。通过打印下面函数的输出,答案范围为-5到4。但是,我只希望函数仅显示肯定答案(即:1到4)。 是否可以忽略负值而不改变x的边界,也不改变a的值

import numpy as np
L = 10 
a = 5

def position(x,a):
        return x-a

x = np.arange(0.0, L, 1)
print (position(x,a))
[-5. -4. -3. -2. -1.  0.  1.  2.  3.  4.]

这可能会有所帮助,例如过滤numpy数组

import numpy
arr = numpy.array([-1.1, 0.0, 1.1])
print(arr)
bools = arr >= 0.0 # define selection
print(bools)
# filter by "bools"
print(arr[bools])

这可能会有所帮助,例如过滤numpy数组

import numpy
arr = numpy.array([-1.1, 0.0, 1.1])
print(arr)
bools = arr >= 0.0 # define selection
print(bools)
# filter by "bools"
print(arr[bools])

根据我从你的问题中得出的结论,这应该是可行的:

result = list(filter(lambda x:x>=0, position(x,a))

根据我从你的问题中得出的结论,这应该是可行的:

result = list(filter(lambda x:x>=0, position(x,a))

若要仅保留满足条件的值,请在示例中使用逻辑索引:
y[y>0]
若要仅保留满足条件的值,请在示例中使用逻辑索引:
y[y>0]
OP要求的值仅为正值,所以它不应该是
>0
?(在他的“i.e.”中,我的意思是——他在其他地方前后矛盾……。@DSM yep,没错。是的,根据文章的哪一部分,答案也可能是否定的。)OP只要求肯定的,那么它不应该是
>0
?(在他的“i.e.”中,我的意思是——他在其他地方前后矛盾……。@DSM yep,没错。是的,根据文章的哪一部分,答案也可能是否定的。这应该行得通,但与其他建议相比太复杂了。尽管如此,它可能需要更少的内存。这应该是可行的,但与其他建议相比太复杂了。然而,它可能需要更少的内存。