python 如何求大小为(9,2,2)的矩阵元素的最小值

izkcnapc  于 2023-01-12  发布在  Python
关注(0)|答案(4)|浏览(148)

假设有一个矩阵A,其形状为np.shape(A)=(9,2,2)。那么,我想找出总共9个外矩阵中内矩阵(2,2)的最小元素值。我们称之为B。有人能告诉我numpy码是什么吗?先谢谢你。

import numpy as np

A =np.array([[[24, 73],
             [35, 67]],

            [[35, 68],
            [21,  5]],

            [[29, 69],
            [60, 46]],

            [[98, 25],
            [50, 92]],

            [[63, 27],
            [55, 28]],

            [[60, 89],
            [61, 66]],

            [[87, 38],
            [44, 33]],

            [[64, 76],
            [76, 70]],

            [[90, 91],
            [71, 58]]])

np.shape(A)

预期结果

B = [24,5,29,25,27,60,38,64,58]

np.shape(B) = (9,)
fcy6dtqo

fcy6dtqo1#

在最后两个轴上使用min聚合:

A.min((1, 2))

或者,如果希望通用代码处理任意数量的维,则reshape可以在最后一个维上聚合min

A.reshape(A.shape[0], -1).min(-1)

输出:array([24, 5, 29, 25, 27, 60, 33, 64, 58])

juud5qan

juud5qan2#

min_list = [np.amin(A[i, :, :]) for i in range(A.shape[0])]

min_list = np.amin(A.reshape(A.shape[0], A.shape[1]*A.shape[2]), axis=1)
yks3o0rb

yks3o0rb3#

既然你只希望得到代码,你去:
np.min(A,轴=(1,2))

sgtfey8w

sgtfey8w4#

一个月一个月

import numpy as np

A =np.array([[[24, 73],
             [35, 67]],

            [[35, 68],
            [21,  5]],

            [[29, 69],
            [60, 46]],

            [[98, 25],
            [50, 92]],

            [[63, 27],
            [55, 28]],

            [[60, 89],
            [61, 66]],

            [[87, 38],
            [44, 33]],

            [[64, 76],
            [76, 70]],

            [[90, 91],
            [71, 58]]])

B1 = A.min(axis=(1, 2))
B2 = np.min(A, axis=(1, 2))

print("B1 =", B1)
print("B2 =", B2)
print("np.shape(B1) =", np.shape(B1))

用2种方法求最小值

1.

B1 = A.min(axis=(1, 2))

2.

B2 = np.min(A, axis=(1, 2))

在numpy中查找数组的形状

shape = np.shape(B1)

一个月一个月

B1 = [24  5 29 25 27 60 33 64 58]
B2 = [24  5 29 25 27 60 33 64 58]
np.shape(B1) = (9,)

相关问题