开发手册 欢迎您!
软件开发者资料库

Python 获取二维数组中每列第二个最小值的方法及示例代码

本文主要Python中,获取一个二维数组(2D array)中,每列数据中第n(n=2)个最小值的方法及示例代码。

示例数据代码:

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实现

文档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])