teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

別解を追記

2018/11/07 21:03

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -21,4 +21,26 @@
21
21
  f = np.vectorize(toChar)
22
22
  ret = f(ary).reshape(28,28)
23
23
  print(ret) # [['@' ' ' '◉' '■' '@' '●' '+' '@' '・' '・' '●' '@' ' ' '■' ' ' '*' '*'...
24
- ```
24
+ ```
25
+
26
+
27
+ 以下、ちょっと詰め込みすぎな別解。
28
+ 見づらいですが`'■▲●@*+・ '[v//32]`で数値→文字に変換しています。
29
+ ```Python
30
+ import numpy as np
31
+
32
+ # テストデータ
33
+ np.random.seed(seed=110)
34
+ ary = np.random.randint(0,256,(28,28))
35
+ #print(ary) # #print(ary) # [[128 227 61 15 125 89 175 128 208 208 70 98 251...
36
+
37
+ sp = ary.shape # (28,28)
38
+ ret = np.array(list(map(lambda v:'■▲●@*+・ '[v//32], ary.flatten()))).reshape(sp) # 環境の都合上、◉を▲で表現
39
+
40
+ # tiitoiさんの回答を参考に
41
+ for r in range(sp[0]):
42
+ for c in range(sp[1]):
43
+ print(ret[r][c], end='')
44
+ print()
45
+ ```
46
+ ![イメージ説明](736396f002cf045e84a00c1c18240761.png)