Python 如何查找具有相同长度的多个数组的最小值的数组

Python 如何查找具有相同长度的多个数组的最小值的数组,python,arrays,min,Python,Arrays,Min,我有一个维度为(29320180)的多维网格数组,其中29是数组数,320是相对值,180是纵向值。我想在所有29个数组中的每个网格点上找到最小值,所以最后我可以得到一个尺寸为320x180的数组,由每个网格点上的最小值组成。我不得不承认每个数组都有大量的nan值。我怎样才能做到这一点? 例如,两个尺寸相同的阵列: a=[[1,2,3],[3,5,8],[4,8,12]] b=[[3,5,6],[9,12,5],[5,6,14]] 所需的输出将是一个数组,每个索引处都有最小值,这意味着: c=[

我有一个维度为(29320180)的多维网格数组,其中29是数组数,320是相对值,180是纵向值。我想在所有29个数组中的每个网格点上找到最小值,所以最后我可以得到一个尺寸为320x180的数组,由每个网格点上的最小值组成。我不得不承认每个数组都有大量的nan值。我怎样才能做到这一点? 例如,两个尺寸相同的阵列: a=[[1,2,3],[3,5,8],[4,8,12]] b=[[3,5,6],[9,12,5],[5,6,14]] 所需的输出将是一个数组,每个索引处都有最小值,这意味着:
c=[[1,2,3],[3,5,5],[4,6,12]]

我不确定是否需要每个数组的最小列或行,您可以使用下面的示例选择所需的列或行

让我们创建几个小型二维阵列的示例:

import numpy as np
ex_dict = {}
lat_min = []
lon_min = []
# creating fake data assuming instead of the 29 arrays of dimensions 320x180 you have 5 arrays of dimensions 2x5 (so we can see the output) and all the arrays are stored in a dictionnary (because it's easier for me to randomly create them that way :)
for i in range(0,5):
    ex_dict[i] = np.stack([np.random.choice(range(i,20), 5, replace=False) for _ in range(2)])
让我们看看我们的阵列:

ex_dict
{0: array([[19, 18,  5, 13,  6],
        [ 5, 12,  3,  8,  0]]),
 1: array([[10, 13,  2, 19, 15],
        [ 5, 19,  6,  8, 14]]),
 2: array([[ 5, 17, 10, 11,  7],
        [19,  2, 11,  5,  6]]),
 3: array([[14,  3, 17,  4, 11],
        [18, 10,  8,  3,  7]]),
 4: array([[15,  8, 18, 14, 10],
        [ 5, 19, 12, 16, 13]])}
然后,让我们创建一个列表来存储每个数组的最小值(lat_min包含所有数组中每个原始值和每个列的lat_lon的最小值):

我们的最小值列表:

lat_min
[array([5, 0]), array([2, 5]), array([5, 2]), array([3, 3]), array([8, 5])]

lon_min
[array([ 5, 12,  3,  8,  0]),
 array([ 5, 13,  2,  8, 14]),
 array([ 5,  2, 10,  5,  6]),
 array([14,  3,  8,  3,  7]),
 array([ 5,  8, 12, 14, 10])]
lat_min
[array([5, 0]), array([2, 5]), array([5, 2]), array([3, 3]), array([8, 5])]

lon_min
[array([ 5, 12,  3,  8,  0]),
 array([ 5, 13,  2,  8, 14]),
 array([ 5,  2, 10,  5,  6]),
 array([14,  3,  8,  3,  7]),
 array([ 5,  8, 12, 14, 10])]