迭代数组的每个元素

Iterate the every elements of arrays

我有两个数组 (3x3),我想访问两个数组中的元素

x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y = [[11, 12, 13], [14, 15, 16], [17, 18, 19]]
z = stack((x, y))

现在我想要这样的子数组

z1 = [1, 11]
z2 = [2, 12]
z3 = [3, 13]
z4 = [4, 14]
...

我尝试了 z[:, 0],但没有按我的意愿提供 [1, 11]。我可以写一个 for 循环并遍历 z[:, i][:, j] 但我的实际数组大小是 6k x 6k,所以它会很慢。有什么办法可以解决吗?谢谢。

z[:, 0, 0]
>>> array([ 1, 11])

您错过了最后一个索引,因为您的堆栈现在是 3 维的。

现在,如果你想单独访问每个元素,你需要循环 3 两次 z[:, i, j]


如果你只是想要一个二维数组,你必须先将它们展平:

x_ = np.array(x).reshape(-1, 1)
y_ = np.array(y).reshape(-1, 1)

z = np.hstack((x_, y_))

z[0]
>>> array([ 1, 11])

试试这个:

x=[[1,2,3],[4,5,6],[7,8,9]]
y=[[11, 12, 13], [14, 15, 16], [17, 18, 19]]

for i in zip(x,y):
    for j in zip(i[0], i[1]):
        print(list(j))

输出:

[1, 11]
[2, 12]
[3, 13]
[4, 14]
[5, 15]
[6, 16]
[7, 17]
[8, 18]
[9, 19]