所以我有一个数组:
array([[[27, 27, 28],
[27, 14, 28]],
[[14, 5, 4],
[ 5, 6, 14]]])
我该如何遍历它,并在每次迭代中都获得[a,b,c]值,我会这样尝试:
for v in np.nditer(a):
print(v)
但它只是打印
27
27
28
27
14
28
14
5
4
5
6
我需要:
[27 27 28]
[27 14 28]...
答案 0 :(得分:1)
b = a.reshape(-1, 3)
for triplet in b:
...
答案 1 :(得分:0)
您可以做些丑陋的事情
for i in range(len(your_array)):
for j in range(len(your_array[i])):
print(your_array[i][j])
答案 2 :(得分:0)
认为它在数组中具有数组。因此,在数组 v 中,您具有数组 a ,该数组又包含三元组 b
import numpy as np
na = np.array
v=na([[[27, 27, 28], [27, 14, 28]], [[14, 5, 4],[ 5, 6, 14]]])
for a in v:
for b in a:
print b
输出:
[27 27 28]
[27 14 28]
[14 5 4]
[ 5 6 14]
或者,您可以执行以下操作
v2 = [b for a in v for b in a]
现在,您所有的三胞胎都存储在 v2
中[array([27, 27, 28]),
array([27, 14, 28]),
array([14, 5, 4]),
array([ 5, 6, 14])]
..您可以像访问一维数组一样访问它们,例如
print v2[0]
给..
array([27, 27, 28])
答案 3 :(得分:0)
将数组A
(形状为n1, n2, 3
)重塑为数组B
(形状为n1 * n2, 3
),并迭代B
。请注意,B
只是A
的视图。 A
和B
在内存中共享相同的数据块,但是它们具有不同的数组头信息,这些信息记录了它们的形状,并且B
中的更改值也将更改A
'的价值。下面的代码:
a = np.array([[[27, 27, 28],[27, 14, 28]],
[[14, 5, 4],[ 5, 6, 14]]])
b = a.reshape((-1, 3))
for last_d in b:
a, b, c = last_d
# do something with last_d or a, b, c