示例数据代码:
A = [[72 76 44 62 81 31] [54 36 82 71 40 45] [63 59 84 36 34 51] [58 53 59 22 77 64] [35 77 60 76 57 44]]
第n个最小值,n=2时,代码如下:
A = [54 53 59 36 40 44]
1、使用heapq.nsmallest实现
from heapq import nsmallest [nsmallest(2, e)[-1] for e in zip(*A)]
输出:
[54, 53, 50, 36, 40, 44]
2、使用sorted(i)实现
[sorted(i)[1] for i in zip(*A)]
或者
#旋转90度 rotated = zip(*A[::-1]) result = [] for arr in rotated: # 排序每个一维数组从最小到最大 arr = sorted(list(arr)) # 将第二个最小值添加到结果数组 result.append(arr[1]) print(result)
zip(*A): 将转置列表,使列变为行。
3、使用numpy.sort()实现
np.sort(A, axis=0)[1, :]
输出结果:
array([54, 53, 59, 36, 40, 44])