迭代数组的每个元素
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]
我有两个数组 (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]