Python 查看数组中的元素
我有两个大小为4,1,2的数组Python 查看数组中的元素,python,arrays,numpy,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
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.]]]
然后我需要找到第1列和第2列的最小值和最大值。我有这个,但它似乎没有做我认为应该做的事情
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])
有更好的方法吗?我会先删除“额外”维度,以保持后续代码的简单性 初始化阵列:
>>> 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]])
简化阵列:
>>> 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])
这是否为您提供了所需内容?您要求不同的列,但为什么更改
轴
?我可能做得不正确。我需要获取左边或x和右边所有元素的最大值和最小值,或者修改我的代码,这样行吗?我最终使用np.vstack将它们放在右边的列中,然后查看第0列的最小值和最大值,然后查看第1列。