---
# System prepended metadata

title: 用 ASCII 字元展現灰階繪製 mnist 資料集的數字
tags: [Python]

---

###### tags: `Python`

# 用 ASCII 字元展現灰階繪製 mnist 資料集的數字

在測試 mnist 資料集的時候, 想說一定要那麼辛苦才會把數字畫出來嗎？於是參考了[這一頁的 ASCII 字元灰階對應](http://paulbourke.net/dataformats/asciiart/), 就可以不用繪圖模組, 只靠 print() 把數字畫 (寫？) 出來了。

```python=
from tensorflow.keras.datasets import mnist

(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

import numpy as np
#             暗<------------------------------------------------------------------>亮
gray_ascii = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. "
def draw_ascii_digit(img_array):
  shape_im = np.shape(img_array)
  for i in range(shape_im[0]):
    for j in range(shape_im[1]):
      gray_scale = img_array[i][j]
      gray_scale = (len(gray_ascii) - 1) - int(gray_scale * (len(gray_ascii) - 1) / 255)
      print(gray_ascii[gray_scale], end='')
    print('')

for k in range(10):
  draw_ascii_digit(train_images[k])
```

執行結果：

```
                            
                            
                            
                            
                            
             ^^^xu0:C$%x    
        ;I)YQ@@@@@*Q@8q_    
       >&@@@@@@@@B)}}~l     
       ^o@@@@@pZ%8          
        [U\@@b' !Y          
         ` Y@1              
           v@w              
           'w@-             
            I8*J/           
             [&@@j,         
              im@@X:        
               ^)@@m        
                 B@B_       
              inZ@@k        
            lX#@@@BZ        
          ,to@@@@d[         
        ,_h@@@@p[           
      ^Qo@@@@q['            
    <Q#@@@@%n'              
    u@@@hun^                
                            
                            
                            
                            
                            
                            
                            
               >J@J>        
              i&@@@&        
             <#@@&W@~.      
           '+*@@@d}@@r      
           C@@@@@@)w@L      
          >&@@wt@#i[$L      
         i&@@O`]j"  @8>     
        lC@Wk}      @@C     
       .O@&?":      @@q     
       ~@@_         @@q     
       p@w          $@p     
      ]%@t          @@X     
      {@M,        .u@m`     
      {@*        .n@*?      
      {@z       iC@Q        
      {@*      t&@J         
      {@Bzi:{O*@*L~         
      {@@@#a@@@pn           
      :p@@@@@Wz             
       ,x@@@cl              
                            
                            
                            
                            
                            
                            
                            
                            
                            
                    -Ml     
    +[              jOl     
    xC              Ykl     
    oC             :@J      
    *C             Z@r      
   i%C             p@~      
   j@C            ,M@:      
   J@j            C@a^      
   J@-         `{OB@1       
   J@{   i>fcX88WO8@l       
   X@&kkk@@B&pc1:.WB        
    j00000(~     |@o        
                 L@v        
                 L@~        
                 L@~        
                 L$)        
                 L@)        
                 L@Y        
                 L$Y        
                 )@Y        
                            
                            
                            
                            
                            
                            
                            
                            
                  r@$_      
                 )%B@+      
                 xBB@+      
                -WBh;'      
               +#BB)        
               Y@@w         
              "@BW_         
             ;b@Bx          
             \B@Z^          
            [&Bq,           
           ;@@@J            
           XBBBl            
          ioBBQ             
          WBBp`             
          @BB1              
         J$@@;              
        i#@%v'              
        _B@o                
        _B@o                
        ,q@o                
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
            <Xk@@t{X<       
           {M@@wk@@@L       
         .~8@w_.`Z@@f       
         )@@Z`  1@@*"       
        n@@z`   a@@[        
       x@%0'  '[%@x         
      ^M@0   Id@@L'         
      "@@;"jp8@@B]          
      ^M@@@@@##@M           
       <W@av!,w@c           
             +$@/           
             ?@@"           
              @@"           
             ?@@"           
             \@@"           
             i$@"           
              a@~           
              )@w!          
              `Z@Q'         
               `z@!         
                            
                            
                            
                            
                            
                            
               `,|r.        
             ;Xk@@@z        
           lY%@@*h@Ml       
         ^Y&@@@a;l@@+       
         )@@@@a: l@@+       
         O@@oL;  ]@@+       
         :x~"    |@@+       
                 U@@+       
             /jrjd@q        
          '<O@@$@@#I        
        .<#@8#Q8@@Mf.       
       .[@@r~ ^k@@@@{.      
      .u@@O^ "d@%xQ@@Z_>>   
      u@8\^ <d@a_ `?C8@@*   
     \@8{^?Q%@x:     1OOl   
     M@%ba@@@r              
     k@@@@OfI.              
     `)cj,.                 
                            
                            
                            
                            
                            
                            
                            
                            
                            
            z$h;            
           ;&@@?            
           '0@@?            
            c@@?            
           ^w@@?            
           :o@@r;           
            r@@@/           
             @@@/           
             $@@/           
             @@@/           
             @@@/           
             @@@/           
             $@@Q           
             @@@@!          
             X@@@c          
             /@@@c          
              a@@$I         
              0@@@I         
              ?@@@I         
              ;h@@I         
                            
                            
                            
                            
                            
                            
                            
                            
                            
           l!\$@@@@@0.      
         !v*#@@@@@@@@U`     
         O@@@@@@@@@@@@~     
         /@@Mnnnnw@@@@~     
         .::,    `#@@Q.     
                 {8@@c      
                {w@@@`      
              1h%@@@b'      
         ;rqqq@@@@&|:       
        i*@@@@@@@@0         
        i*@@@@$@@@@]        
         ;r<!!!!c@@]        
                ^@@]        
                {@@]        
      .]'      (8@@]        
     +Z@:    ^1&@@8_        
     k@@zuuuud@@@m}         
     k@@@@@@@@@MY'          
     >U@@@@@akzi            
      .|W@Q|,               
                            
                            
                            
                            
                            
                            
                            
                            
            ._p             
            "@M,            
            "@@i            
            "@$i            
            "@@~            
            "@@/            
            ^&@c            
             O@c            
             O@c            
             O@J            
             O@&            
             t@&            
             }@%;           
             [@%l           
              h@X           
              c8'           
              c&            
              c@}           
              M%l           
              Lk;           
                            
                            
                            
                            
                            
                            
                            
                      ww    
                     c%Y    
                    u%8{    
                    w@m     
            +m^    1Wai     
            a@+    h$[      
            b@-   i8@1      
           nBh"  'L@p.      
          :M%_   Y@#        
         io@c   fB@|        
       .)@$@dr.,dBU         
       1@@@a@@d#@M          
      {B%M_iw@@@@B#I        
      wo(   !p@@@@J         
      t:    +&@{!!`         
           ^X@a             
           j@M:             
          ;oBx              
          a@J               
          r@}               

```