在不对数组排序的情况下找到第一个最小数目的numpy数组,然后是第二个最小数目数组,可以通过以下方法实现:
import numpy as np
arr = np.array([8, 2, 5, 1, 9, 4, 3, 7, 6])
first_min_index = np.argpartition(arr, 1)[:1]
first_min_array = arr[first_min_index]
这里,arr是输入的numpy数组,argpartition(arr, 1)将数组分成两个分区,左侧分区中的元素小于右侧分区中的元素。[:1]则取左侧分区的第一个索引值,即第一个最小数目的索引。最后,将这个索引应用于原始数组arr,得到第一个最小数目的数组first_min_array。
arr_without_first_min = np.delete(arr, first_min_index)
second_min_index = np.argpartition(arr_without_first_min, 1)[:1]
second_min_array = arr_without_first_min[second_min_index]
这里,使用np.delete函数从原始数组arr中删除第一个最小数目的数组,得到剩余的数组arr_without_first_min。然后,使用argpartition函数在剩余数组中找到第二个最小数目的索引。再次将这个索引应用于剩余数组arr_without_first_min,得到第二个最小数目的数组second_min_array。
注意:以上方法并未对原始数组进行排序,而是通过使用argpartition函数在数组中寻找最小数目。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云