Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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数组在一定范围内的最小值和最大值_Python_Arrays_Numpy_Max_Min - Fatal编程技术网

Python中NumPy数组在一定范围内的最小值和最大值

Python中NumPy数组在一定范围内的最小值和最大值,python,arrays,numpy,max,min,Python,Arrays,Numpy,Max,Min,我正在从传感器读取数据,其数据总是随时间变化,其数据介于0和255之间,如np.array 我想找到介于3和250之间的最小值和最大值 例如: import numpy as np a = np.array([0,1, 2, 10, 20, 100, 251, 255]) d = a.min() c = a.max() print (d,c) 输出为:(0255) 我想成为(10100) 有时a=np.array([0,1,3,10,20,100,249,255]) 我想成为(3249) 请提

我正在从传感器读取数据,其数据总是随时间变化,其数据介于0和255之间,如
np.array

我想找到介于3和250之间的最小值和最大值

例如:

import numpy as np
a = np.array([0,1, 2, 10, 20, 100, 251, 255])
d = a.min()
c = a.max()
print (d,c)
输出为:
(0255)

我想成为
(10100)

有时
a=np.array([0,1,3,10,20,100,249,255])

我想成为
(3249)


请提供您的帮助。

您可以添加条件,然后选中
min
max

a=np.array([0,1,2,10,20,100,251,255])
打印(a[(a>=3)和(a=3)和(a一种方式是:

>>> a
array([0,1, 2, 10, 20, 100, 251, 255])
>>> arr_min = a[(a >= 3) & (a <= 250)].min()
>>> arr_max = a[(a >= 3) & (a <= 250)].max()
>>> (arr_min, arr_max)
(10, 100)

只需使用
numpy
中的现有函数创建自己的函数即可:

import numpy as np

def my_min(input, min_, max_):
    m = input.min()

    if m > max_:
        return max_
    elif m < min_:
        return min_
    else:
        return m

def my_max(input, min_, max_):
    m = input.max()

    if m > max_:
        return max_
    elif m < min_:
        return min_
    else:
        return m

l1 = np.array([0, 1, 2, 10, 20, 100, 251, 255])
l2 = np.array([0,1, 3, 10, 20, 100, 249, 255])

print("({}, {})".format(my_min(l1, 10, 100), my_max(l1, 10, 100)))
print("({}, {})".format(my_min(l2, 3, 250), my_max(l2, 3, 250)))

调用函数,如
my\u min(array,min,max)


为什么最大值是100和249?而不是255?@SayandipDutta,我想找到介于3和250之间的最小值和最大值。我编辑了它,谢谢。谢谢你的帮助。输出是:(0,255)。很抱歉,我第一次不理解您的问题@redhwanac,我认为开始限制和结束限制已被排除。然后在您修改问题后,我更改了我的答案。:)考虑到数据是从传感器读取的,这不是很有效。当然,我用正确的答案做到了这一点,您的代码需要编辑才能给出输出(10100)。a=np.array([0,1,3,10,20,100,249,255])怎么样?好的,我编辑了答案。但是它给出了正确的输出,您可以随意使用它。print(({},{}).format(my_min(l1,3250),my_max(l1,3250))打印(({},{})”.format(my_min(l2,3250),my_max(l2,3250))(3250)(3250),对不起,它仍然是错误的。如果最小值是9,我每次都需要更改代码吗?
>>> from scipy.stats import describe
>>> describe(a[(3 <= a) & (a <= 250)]).minmax
(10, 100)
import numpy as np

def my_min(input, min_, max_):
    m = input.min()

    if m > max_:
        return max_
    elif m < min_:
        return min_
    else:
        return m

def my_max(input, min_, max_):
    m = input.max()

    if m > max_:
        return max_
    elif m < min_:
        return min_
    else:
        return m

l1 = np.array([0, 1, 2, 10, 20, 100, 251, 255])
l2 = np.array([0,1, 3, 10, 20, 100, 249, 255])

print("({}, {})".format(my_min(l1, 10, 100), my_max(l1, 10, 100)))
print("({}, {})".format(my_min(l2, 3, 250), my_max(l2, 3, 250)))
(10, 100)
(3, 250)