考虑两个数组 A 和 B,维度均为 NxN。 我希望生成一个新数组 NxN,这样每个新元素都是类型 (A_ij,B_ij) 的元组(或列表,并不重要)。
我可以通过逐个元素运行来做到这一点,例如:
def recombine(A,B):
NewArray=[]
for i in range(len(A)):
NewArray.append([])
for j in range(len(B)):
NewArray[i].append(A[i][j],B[i][j])
return NewArray
这是一个非常消耗内存的算法。
我想知道是否有更有效的方法(利用 numpy 数组来做到这一点)。
为了澄清这一点,让我们考虑以下示例(为了简单起见,我考虑使用简单列表而不是 np 数组):
A=[[1,2],[3,4]]
B=[[10,20],[30,40]]
#I want an output in the form:
[[(1,10),(2,20)],[(3,30),(4,40)]]
提前致谢, 做
我认为 np.dstack 可以在这种情况下使用,但是。您可以使用内置的zip功能
A=[[1,2],[3,4]]
B=[[10,20],[30,40]]
def recombine(A,B):
return [list(zip(A[i], B[i])) for i in range(len(A))]
print(recombine(A,B))
import numpy as np
print(np.dstack((A,B)))