Python 一定范围内 NumPy 数组的最小值和最大值
min and max of NumPy arrays in Python within a certain range
我正在从传感器读取数据,它的数据总是随时间变化,它的数据在 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)
输出为:(0, 255)
我想成为 (10, 100)
有时a = np.array([0,1, 3, 10, 20, 100, 249, 255])
我想成为 (3, 249)
拜托,你的帮助。
您可以添加条件,然后检查 min
和 max
a = np.array([0,1, 2, 10, 20, 100, 251, 255])
print(a[(a>=3) & (a<=250)].min())
print(a[(a>=3) & (a<=250)].max())
10
100
一种方法是:
>>> 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)
另一个是 scipy.stats.describe
:
>>> from scipy.stats import describe
>>> describe(a[(3 <= a) & (a <= 250)]).minmax
(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)))
输出:
(10, 100)
(3, 250)
Call the function like my_min(array, min, max)
我正在从传感器读取数据,它的数据总是随时间变化,它的数据在 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)
输出为:(0, 255)
我想成为 (10, 100)
有时a = np.array([0,1, 3, 10, 20, 100, 249, 255])
我想成为 (3, 249)
拜托,你的帮助。
您可以添加条件,然后检查 min
和 max
a = np.array([0,1, 2, 10, 20, 100, 251, 255])
print(a[(a>=3) & (a<=250)].min())
print(a[(a>=3) & (a<=250)].max())
10
100
一种方法是:
>>> 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)
另一个是 scipy.stats.describe
:
>>> from scipy.stats import describe
>>> describe(a[(3 <= a) & (a <= 250)]).minmax
(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)))
输出:
(10, 100)
(3, 250)
Call the function like
my_min(array, min, max)