Python 如何映射具有相同索引的2个numpy数组
我试图将2个numpy数组映射为[x,y],类似于zip对列表和元组所做的 我有2个numpy阵列,如下所示:Python 如何映射具有相同索引的2个numpy数组,python,numpy,Python,Numpy,我试图将2个numpy数组映射为[x,y],类似于zip对列表和元组所做的 我有2个numpy阵列,如下所示: arr1 = [1, 2, 3, 4] arr2 = [5, 6, 7, 8] 我正在寻找一个输出为np.array([[[1,5],[2,6],[3,7],[4,8]]) 我尝试了这个方法,但它映射了每个值,并且没有相同的索引。我可以在这里添加更多的if条件,但有没有其他方法可以在不添加任何if条件的情况下添加更多的if条件 res = [arr1, arr2] for a1 in
arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]
我正在寻找一个输出为np.array([[[1,5],[2,6],[3,7],[4,8]])
我尝试了这个方法,但它映射了每个值,并且没有相同的索引。我可以在这里添加更多的if条件,但有没有其他方法可以在不添加任何if条件的情况下添加更多的if条件
res = [arr1, arr2] for a1 in arr1 for a2 in arr2]
内置的
zip
命令就是您在这里的工作。它会完全按照你的要求做
arr1 = [1,2,3,4]
arr2 = [5,6,7,8]
list(zip(arr1, arr2))
[(1, 5), (2, 6), (3, 7), (4, 8)]
IIUC,一种方法是使用,然后是:
或者您可以将zip
的输出传递给array
构造函数:
print(np.array(zip(arr1, arr2)))
#array([[1, 5],
# [2, 6],
# [3, 7],
# [4, 8]])
你在找什么
按深度顺序堆叠阵列(沿第三轴)
很好的方法,但是OP正在寻找一个特定于
numpy.ndarray
参数和返回的方法。我不知道这个方法存在+1它的numpy,某些东西总是存在;)谢谢@user3483203。我尝试了上面的方法,但是没有逗号分隔的值。是的,我的输入是这种类型的
哦,这就是你的stdout表示numpy数组的方式。如果您想验证是否需要(1,4,2)数组,请尝试转换为列表?初始尺寸为1维的3d。
print(np.array(zip(arr1, arr2)))
#array([[1, 5],
# [2, 6],
# [3, 7],
# [4, 8]])
np.dstack([arr1, arr2])
array([[[1, 5],
[2, 6],
[3, 7],
[4, 8]]])