如何找到大小为(9,2,2)的矩阵中元素的最小值



假设我有一个矩阵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,)

Solution

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))

用两种方法求最小值

<标题>1。
B1 = A.min(axis=(1, 2))
<标题>2。
B2 = np.min(A, axis=(1, 2))

查找数组的形状

shape = np.shape(B1)

Output

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

在最后两个轴上使用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])

既然您只希望获取代码,那么就这样吧:

np。分钟(轴=(1、2)

最新更新