numpy - 从2个最大3D阵列中获得最小值

时间:2018-02-13 08:46:50

标签: python arrays numpy

我有这个问题,我在numpy中有2个3D arrys,我从中获取字段/值,然后找到每个3D ararys的最大值,当我知道这个数组时我现在想要找到这个2 numpy的最小值数组,但它没有任何感觉enymore和我没有得到我想要的看到我的代码

np_array = np.array([ [ [
    1, 150, 300, 575, 400
    ], [
    2, 150, 145, 300, 289
    ], [
    4, 150, 275, 378, 421
    ], [
    5, 150, 225, 351, 985
    ] ], [ [
    1, 250, 400, 465, 342
    ], [
    2, 250, 245, 355, 198
    ], [
    4, 250, 375, 486, 267
    ], [
    5, 250, 325, 458, 545
    ] ]
])

print(np_array)

pricegroup_id = np_array[...,[0]]

min_dkk = np_array[...,[1]]
min_procent = np_array[...,[2]]
min_max_value = np.maximum(min_dkk, min_procent)

max_dkk = np_array[...,[3]]
max_procent = np_array[...,[4]]
max_max_value = np.maximum(max_dkk, max_procent)

min_value = np.minimum(max_max_value[...,[0]], min_max_value[...,[0]])

输出:np_array(确定)

[[[  1 150 300 575 400]
  [  2 150 145 300 289]
  [  4 150 275 378 421]
  [  5 150 225 351 985]]

 [[  1 250 400 465 342]
  [  2 250 245 355 198]
  [  4 250 375 486 267]
  [  5 250 325 458 545]]]

输出:min_dkk(确定)

[[[150]
  [150]
  [150]
  [150]]

 [[250]
  [250]
  [250]
  [250]]]

输出:min_procent(确定)

[[[300]
  [145]
  [275]
  [225]]

 [[400]
  [245]
  [375]
  [325]]]

输出:min_max_value(OK)

[[[300]
  [150]
  [275]
  [225]]

 [[400]
  [250]
  [375]
  [325]]]

输出:max_dkk(确定)

[[[575]
  [300]
  [378]
  [351]]

 [[465]
  [355]
  [486]
  [458]]]

输出:max_procent(确定)

[[[400]
  [289]
  [421]
  [985]]

 [[342]
  [198]
  [267]
  [545]]]

输出:max_max_value(OK)

[[[575]
  [300]
  [421]
  [985]]

 [[465]
  [355]
  [486]
  [545]]]

输出:pricegroup_id(确定)

[[[1]
  [2]
  [4]
  [5]]

 [[1]
  [2]
  [4]
  [5]]]

输出:min_value(错误)

[[[300]
  [150]
  [275]
  [225]]

 [[400]
  [250]
  [375]
  [325]]]

所以现在问题是我如何错误以及为什么它采取最小化。所有值,而不仅仅是我想要的数组级别?

我搜索的结果是:

[[[400]
  [289]
  [421]
  [985]]

 [[342]
  [198]
  [267]
  [545]]]

1 个答案:

答案 0 :(得分:0)

我不明白你为什么期待你说你的结果。您的代码完全按照您的要求执行,您期望的结果不包含任何输入值。

的最小值
array([[[300],
        [150],
        [275],
        [225]],
       [[400],
        [250],
        [375],
        [325]]])

array([[[575],
        [300],
        [421],
        [985]],
       [[465],
        [355],
        [486],
        [545]]])

array([[[300],
        [150],
        [275],
        [225]],
       [[400],
        [250],
        [375],
        [325]]])