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

时间:2017-03-04 19:00:39

标签: python python-3.x numpy

我使用了一个函数来计算2个值之间的差异。从打印下面函数的输出开始,答案的范围是-5到4.但是我只希望函数只显示正答案(即:1到4)。 是否可以忽略负值而不改变x的边界,也不改变α的值

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

3 个答案:

答案 0 :(得分:2)

import numpy as np
L = 10 
a = 5

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

x = np.arange(0.0, L, 1)
tmp = position(x,a)
print (tmp[tmp>=0])

答案 1 :(得分:1)

这可能会有所帮助,一个过滤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])

答案 2 :(得分:-1)

基于我可以从您的问题中得到的结果,这应该有效:

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