回答編集履歴
3
追記
answer
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
> np.set_printoptions [中略] としたら、できた
|
15
15
|
|
16
16
|
フォーマット書式を省略した場合、オブジェクトの`__str__`メソッドが呼ばれます。
|
17
|
-
set_printoptionsを用いれば、指示通りの書式
|
17
|
+
numpy.set_printoptionsを用いれば、**NumPy側で**指示通りの書式を適用してくれるのです。
|
18
18
|
|
19
19
|
実験
|
20
20
|
---
|
2
追記
answer
CHANGED
@@ -14,4 +14,41 @@
|
|
14
14
|
> np.set_printoptions [中略] としたら、できた
|
15
15
|
|
16
16
|
フォーマット書式を省略した場合、オブジェクトの`__str__`メソッドが呼ばれます。
|
17
|
-
set_printoptionsを用いれば、指示通りの書式で文字列化してくれるのです。
|
17
|
+
set_printoptionsを用いれば、指示通りの書式で文字列化してくれるのです。
|
18
|
+
|
19
|
+
実験
|
20
|
+
---
|
21
|
+
オレオレクラスで実験。
|
22
|
+
```Python
|
23
|
+
class MyArray:
|
24
|
+
def __init__(self, lst):
|
25
|
+
self._lst = lst
|
26
|
+
self._format = '{:.5f}'
|
27
|
+
|
28
|
+
def set_precision(self, precision):
|
29
|
+
self._format = '{{:.{}f}}'.format(precision)
|
30
|
+
|
31
|
+
def __str__(self):
|
32
|
+
return ' '.join(
|
33
|
+
self._format.format(e) for e in self._lst
|
34
|
+
)
|
35
|
+
|
36
|
+
|
37
|
+
arr = MyArray([3.141592, 2.718281])
|
38
|
+
print('arr is {} !'.format(arr))
|
39
|
+
|
40
|
+
arr.set_precision(3)
|
41
|
+
print('arr is {} !'.format(arr))
|
42
|
+
|
43
|
+
print('arr is {:.2f} !'.format(arr))
|
44
|
+
```
|
45
|
+
|
46
|
+
**実行結果** [Wandbox](https://wandbox.org/permlink/xDuai6VXu4fbFLpM)
|
47
|
+
```
|
48
|
+
arr is 3.14159 2.71828 !
|
49
|
+
arr is 3.142 2.718 !
|
50
|
+
Traceback (most recent call last):
|
51
|
+
File "prog.py", line 21, in <module>
|
52
|
+
print('arr is {:.2f} !'.format(arr))
|
53
|
+
TypeError: unsupported format string passed to MyArray.__format__
|
54
|
+
```
|
1
追記
answer
CHANGED
@@ -9,4 +9,9 @@
|
|
9
9
|
Traceback (most recent call last):
|
10
10
|
File "<stdin>", line 1, in <module>
|
11
11
|
TypeError: unsupported format string passed to list.__format__
|
12
|
-
```
|
12
|
+
```
|
13
|
+
|
14
|
+
> np.set_printoptions [中略] としたら、できた
|
15
|
+
|
16
|
+
フォーマット書式を省略した場合、オブジェクトの`__str__`メソッドが呼ばれます。
|
17
|
+
set_printoptionsを用いれば、指示通りの書式で文字列化してくれるのです。
|