我正在生成一个5x3的随机数组。我需要识别并删除最小的两个数字,然后计算其余数字的中位数。我能够确定最小的数字,但无法继续进行。
import numpy as Np
a = Np.random.randint(100, size = (5,3))
print(a)
print('\n')
sort1 = Np.concatenate(a, axis=0)
print("Concatenated: ", sort1)
print('\n')
sort2 = Np.sort(sort1)
print(sort2)
print('\n')
c = Np.min(sort2,0) #min
print(c)
print('\n')
med = Np.median(sort2)
print("Median is: ", med)
答案 0 :(得分:0)
您可以这样做:
a = Np.random.randint(100, size = (5,3))
a = Np.delete(a, a.argmin())
a = Np.delete(a, a.argmin())
Np.median(a)
# 48.0
答案 1 :(得分:0)
好吧,您设法获得了最小的数字,现在需要将其删除。
我将创建一个列表,您实际上不需要数组即可计算中位数。 创建列表后,它变得更容易了,您可以使用list.remove()删除项目,并且中位数函数保持不变。
您的代码将如下所示:
import numpy as Np
a = Np.random.randint(100, size = (5,3))
sort1 = list(Np.concatenate(a, axis=0))
sort1.remove(min(sort1))
med = Np.median(sort1)
sort1.remove(min(sort1))
med2 = Np.median(sort1)