Python > inpbtとprint(inpbt)の出力の違い > [ 1. 2. 3.] / array([ 1., 2., 3.], dtype=float32)


動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 14.04 LTS desktop amd64
TensorFlow v0.11
cuDNN v5.1 for Linux
CUDA v8.0
Python 2.7.6
IPython 5.1.0 -- An enhanced Interactive Python.
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
GNU bash, version 4.3.8(1)-release (x86_64-pc-linux-gnu)

TensorFlowのコードを実装中に持った疑問。

>>> import numpy as np
>>> inpbt = np.array([1,2,3], dtype='f')
>>> print(inpbt)
[ 1.  2.  3.]
>>> inpbt
array([ 1.,  2.,  3.], dtype=float32)

learn_xxyyfunc_170321.pyというコードで実装して、print()でinput batchを出力した時に後者のarray(..., dtype=...)の表記になる。

一方で、上記のようにinteractive mode(?)で実行時、print()を使った例では、arraydtypeの表記は見られない。

短いスクリプトでも試しみた。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np

# on Python 2.7.6

inpbt = np.array([1,2,3], dtype='f')
print(inpbt)
実行
$ python test_python_170324a.py 
[ 1.  2.  3.]

Pythonスクリプト実行時にarray(..., dtype=...)表記にするなんらかのオプションが有効になっているのだろうか。

test_python_170324a.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np

# Python 2.7.6

inpbt = np.array([1,2,3], dtype='f')
print(inpbt)
alist = list([inpbt])
print(alist)
実行
$ python test_python_170324a.py 
[ 1.  2.  3.]
[array([ 1.,  2.,  3.], dtype=float32)]

list型を[]でかこった上にlist()でくくるとarray(..., dtype=...)表記になった。