如何删除数组中最小的数字,如果有多个最小数字,则删除第一个

Edi*_*vic 2 python arrays numpy minimum python-3.x

我正在尝试制作一个脚本,其中输入是一个带有随机数的数组。我尝试删除数组中的最低数字,这没有问题。但是,如果该数字在数组中多次出现,我如何确保只有该数字第一次出现才被删除?

假设我们有以下数组:

a = np.array([2,6,2,1,6,1,9])
Run Code Online (Sandbox Code Playgroud)

这里最低的数字是 1,但由于它出现了两次,我只想删除第一次出现,因此我得到以下数组:

 a = np.array([2,6,2,6,1,9])
Run Code Online (Sandbox Code Playgroud)

Bra*_*mon 5

由于您使用的是 NumPy,而不是本机 Python 列表:

a = np.array([2,6,2,1,6,1,9])

a = np.delete(a, a.argmin())

print(a)
# [2 6 2 6 1 9]
Run Code Online (Sandbox Code Playgroud)

np.delete: 返回一个新的数组,其中的子数组沿轴被删除。

np.argmin:返回沿轴的最小值的索引。

使用 NumPy 数组,您不能del像在列表中那样删除元素。