我有一个3D NumPy数组,如下所示:
[[[4 1 5 2 5 5 7 8 9 7]
[7 4 2 4 7 8 4 1 3 5]
[6 1 2 1 1 1 2 3 7 6]
[5 5 5 0 5 4 3 8 7 1]
[2 8 6 7 4 7 5 5 5 1]]
[[9 9 5 8 0 7 3 9 8 1]
[9 1 9 5 7 4 5 4 7 0]
[1 0 4 8 7 3 4 3 8 8]
[8 1 3 1 7 0 9 9 3 8]
[4 0 2 3 8 2 0 1 2 4]]
[[1 6 2 4 4 0 2 3 0 3]
[9 6 8 6 6 5 6 9 4 1]
[0 4 0 2 9 1 1 2 4 6]
[6 1 9 9 7 8 9 7 6 8]
[9 3 9 0 7 0 0 0 7 0]]]
有了它,我喜欢创建一个2d ndarray,如下所示:
[[6]
[9]
[9]]
其中此2d数组的每个元素是原始数组上第三列的最大值:
我花了几个小时试图解决这个问题,但是没有运气。
我要求使用2d数组作为输出,因为我还要进行其他计算(例如,我还需要以类似的方式最小化第二列的值),但是我想我可以从中推断出这些值。
任何指针,不胜感激!
您是否尝试过:
import numpy as np
x = np.random.randint(0, 10, (3, 5, 10))
print(x)
maxes = x[:,:,2].max(axis=1)
print(maxes)
[[[5 0 6 6 4 7 5 0 4 8]
[0 6 8 8 2 1 7 5 4 3]
[2 7 5 5 0 2 6 8 6 3]
[5 9 7 5 1 1 5 4 8 7]
[0 2 3 7 8 1 9 1 2 6]]
[[8 9 4 3 3 6 0 4 9 1]
[1 5 6 4 3 2 7 7 0 2]
[3 2 0 1 9 6 5 8 0 5]
[6 1 5 9 1 6 4 7 4 5]
[7 2 5 8 6 8 5 1 9 5]]
[[9 4 0 9 0 6 3 7 4 1]
[4 1 4 9 1 1 1 2 0 6]
[7 3 3 2 5 2 0 6 9 1]
[1 7 0 1 8 1 3 8 6 4]
[6 9 0 2 6 0 2 1 7 7]]]
[8 6 4]
要了解结帐的工作方式,请执行以下操作:
并且,要获取所有列的最大值:
col_maximums = x.max(axis=1)
print(col_maximums)
[[5 9 8 8 8 7 9 8 8 8]
[8 9 6 9 9 8 7 8 9 5]
[9 9 4 9 8 6 3 8 9 7]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句