Python中NumPy数组在一定范围内的最小值和最大值
我正在从传感器读取数据,其数据总是随时间变化,其数据介于0和255之间,如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) 请提
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)