首页 > 解决方案 > How to iterate this n dimensional array?

问题描述

My Program print as

1
2
3
3
4
5
10
5
12
13
6
14

But I want to print array this shape

[[[ 1  2  3]
  [ 3  4  5]]

 [[10  5 12]
  [13  6 14]]]

# more than one dimensions 
import numpy as np 
a = np.array([[[1,2,3], [3,4,5]],[[10,5,12], [13,6,14]]]) 
print a.shape
for k in a:
    for i in k:
        for j in i:
            print j

标签: pythonarraysnumpy

解决方案


In [53]: a = np.array([[[1,2,3], [3,4,5]],[[10,5,12], [13,6,14]]])              

一个简单的打印,str(a)数组的格式:

In [54]: print(a)                                                               
[[[ 1  2  3]
  [ 3  4  5]]

 [[10  5 12]
  [13  6 14]]]

在我看来,通过迭代重新创建它比它的价值更多。

好的,这是迭代进行的第一次尝试:

In [66]: block = [] 
    ...: for panel in a: 
    ...:     sub = [] 
    ...:     for row in panel: 
    ...:         sub.append(str(row)) 
    ...:     sub = '\n'.join(sub) 
    ...:     block.append(sub) 
    ...: block = '\n\n'.join(block)                                             
In [67]: block                                                                  
Out[67]: '[1 2 3]\n[3 4 5]\n\n[10  5 12]\n[13  6 14]'
In [68]: print(block)                                                           
[1 2 3]
[3 4 5]

[10  5 12]
[13  6 14]

推荐阅读