2016-05-09 18 views
2

私は見ているいくつかの出力に混乱しています。Python:numpyデータ型キャスト

pはfloatのリストである場合には、違いは何です:私は2番目のオプションを使用し、印刷(入力)を行う場合

input = np.array([p]).astype('f') 

input = np.array([p],float) 

、私はいつも以下のような何かを得る:

[配列([ - 0.662、0.246、1.029])]

をしかし、私はモミを使用している場合stオプションでは、時々私は単純に得る: [[0.61900002 1.71300006 2.16899991]

しかし、私は[配列(])]フォームを得る。ここ

答えて

3

は説明です:

In [217]: np.array([1.1,1.2,1.3]).astype('f') 
Out[217]: array([ 1.10000002, 1.20000005, 1.29999995], dtype=float32) 

In [218]: np.array([1.1,1.2,1.3]).astype('float') 
Out[218]: array([ 1.1, 1.2, 1.3]) 

In [219]: np.array([1.1,1.2,1.3]).astype(float) 
Out[219]: array([ 1.1, 1.2, 1.3]) 

タイプ:

In [220]: np.array([1.1,1.2,1.3]).astype(float).dtype 
Out[220]: dtype('float64') 

In [221]: np.array([1.1,1.2,1.3]).astype('f').dtype 
Out[221]: dtype('float32') 

ので、あなたはnp.array([p], 'f')を使用しても同じ結果になります。

In [224]: np.array([1.1,1.2,1.3],'f') 
Out[224]: array([ 1.10000002, 1.20000005, 1.29999995], dtype=float32) 
+0

おかげで、MaxUは、私がのその部分を参照してくださいこの違いはfloat32とfloat64の関係にありますが、なぜ時々私が得るのか説明できますか:[[0.61900002 1.71300006 2.16 899991]]、​​print()コマンドを実行すると "array"が表示されません。 –