如何在python中从数组中删除所有最小值

2024-09-28 18:46:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个[2 2 3 4 4 5 6 6 6]数组,希望从中删除所有最小值

输出应该是[3 4 4 5 6 6 6]

我试着像下面的代码一样,但它删除了一个2,留下了[2 3 4 4 5 6 6 6]

import numpy as np

a = np.array([2,2,3,4,4,5,6,6,6])
b= np.delete(a, a.argmin())

Tags: 代码importnumpyasnp数组deletearray
3条回答

Python有一个用于查找min的内置函数

val = min(values)
b =[v for v in values if v != val]

numpy数组的大小是不可变的,但您可以使用以下简单的oneliner创建此数组的副本:

arr = np.array([2, 2, 3, 4, 4, 5, 6, 6, 6])
arr[arr!=np.min(arr)]

输出:

array([3, 4, 4, 5, 6, 6, 6])

您可以获得大于最小值的索引,并像this answer中那样对数组进行切片

out = a[a>a.min()]

注意,这比使用链接答案中解释的np.delete更快

相关问题 更多 >