查看数组中的元素

时间:2015-03-17 14:55:55

标签: python arrays numpy

我有两个大小为4,1,2

的数组
 array1  [[[   1.    2.]]
          [[   3.    4.]]
          [[   5.    6.]]
          [[   7.    8.]]]

 array2  [[[   8.    4.]]
          [[   7.    3.]]
          [[   6.    2.]]
          [[   5.    1.]]]

我需要将它们放入一个看起来像

的数组中
 merged  [[[   1.    2.]]
          [[   3.    4.]]
          [[   5.    6.]]
          [[   7.    8.]]
          [[   8.    4.]]
          [[   7.    3.]]
          [[   6.    2.]]
          [[   5.    1.]]]

然后我需要找到column1和column2的最小值和最大值。我有这个,但似乎没有做我认为应该做的事情。

mergedArray = concatenate((array1,array2),axis=1)

x_min = np.amin(mergedArray[:,0])
x_max = np.amax(mergedArray[:,0])
y_min = np.amin(mergedArray[:,1])
y_max = np.amax(mergedArray[:,1])

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我很想去掉额外的'维度第一,保持后续代码简单。

初始化数组:

>>> array1 = np.array([[[1, 2]], [[3, 4]], [[5, 6]], [[7, 8]]])
>>> array2 = np.array([[[8, 4]], [[7, 3]], [[6, 2]], [[5, 1]]])

>>> array1
array([[[1, 2]],

       [[3, 4]],

       [[5, 6]],

       [[7, 8]]])

简化数组:

>>> array1b = array1[:,0,:]
>>> array2b = array2[:,0,:]

>>> array1b
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

连接和最小/最大现在变得更简单了:

>>> merged = np.concatenate((array1b, array2b))
>>> merged
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8],
       [8, 4],
       [7, 3],
       [6, 2],
       [5, 1]])

>>> np.amin(merged, axis=1)
array([1, 3, 5, 7, 4, 3, 2, 1])

这能满足您的需求吗?