首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何映射两个具有相同索引的numpy数组?

如何映射两个具有相同索引的numpy数组?
EN

Stack Overflow用户
提问于 2018-06-20 19:45:39
回答 3查看 514关注 0票数 3

我试图将2个numpy数组映射为x,y,类似于zip对列表和元组所做的操作。

我有2个numpy数组如下:

代码语言:javascript
复制
arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]

我在找output as np.array([[[1, 5], [2, 6], [3, 7], [4, 8]]])

我试过这样做,但它映射每个值,而不是使用相同的索引。我可以在这里添加更多的if条件,但没有其他方法可以这样做,而不添加任何条件。

代码语言:javascript
复制
res = [arr1, arr2] for a1 in arr1 for a2 in arr2]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-20 19:54:24

你在找np.dstack

按顺序深度排列的堆栈数组(沿第三轴)。

代码语言:javascript
复制
np.dstack([arr1, arr2])

array([[[1, 5],
        [2, 6],
        [3, 7],
        [4, 8]]])
票数 2
EN

Stack Overflow用户

发布于 2018-06-20 19:51:25

IIUC,一种方法是使用numpy.vstack(),然后是transpose()

代码语言:javascript
复制
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])
print(np.vstack([arr1, arr2]).transpose())
#array([[1, 5],
#       [2, 6],
#       [3, 7],
#       [4, 8]])

也可以将zip的输出传递给array构造函数:

代码语言:javascript
复制
print(np.array(zip(arr1, arr2)))
#array([[1, 5],
#       [2, 6],
#       [3, 7],
#       [4, 8]])
票数 2
EN

Stack Overflow用户

发布于 2018-06-20 19:49:55

内置的zip命令是这里的工作。它会做你想要的。

代码语言:javascript
复制
arr1 = [1,2,3,4]
arr2 = [5,6,7,8]
list(zip(arr1, arr2))
[(1, 5), (2, 6), (3, 7), (4, 8)]

https://docs.python.org/3/library/functions.html#zip

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50955960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档