python去掉最高最低求平均值_从平均值计算中删除数组的最大和最小元素

python list有一个remove方法。在

使用实用函数,我们可以从一行中移除最小和最大元素:def foo(i,j,k):

il = i.tolist()

il.remove(j)

il.remove(k)

return il

In [230]: [foo(i,j,k) for i,j,k in zip(a,b,c)]

Out[230]: [[4, 5], [2, 5], [3, 9]]

这可以用np.array(...)转换回一个数组。注意,这只删除了最后一行中的9中的一个。如果它同时删除了这两个值,最后一个列表将只有1个值,并且结果无法转换回二维数组。在

我确信我们可以想出一个纯数组方法,可能使用argmax和{},而不是{}和{}。但我认为对于Python初学者来说,列表方法是一个更好的起点。在

一种阵列掩蔽方法

^{pr2}$

同样,如果我们只从每一行中删除一个max和一个min,这会更好。在

另一种掩蔽方法:In [257]: (a!=b[:,None]) & (a!=c[:,None])

Out[257]:

array([[False, True, True, False],

[ True, False, True, False],

[ True, False, False, False]], dtype=bool)

In [258]: a[(a!=b[:,None]) & (a!=c[:,None])]

Out[258]: array([4, 5, 2, 5, 3])

这确实删除了最后一行中的所有“9”。但它不保留行分割。在

这将保留行结构,并允许可变长度:In [259]: mask=(a!=b[:,None]) & (a!=c[:,None])

In [260]: [i[j] for i,j in zip(a, mask)]

Out[260]: [array([4, 5]), array([2, 5]), array([3])]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值