私はこれで完全に困惑しています。array([ 0.4, -9])
:以下numpy.arrayはdtypeが指定されていても指定されていなくても奇妙な動作をします
import numpy as np
a = np.array([4, -9])
a[0] = 0.4
a
I 予想出力から
。しかし、それは私を与える
。
しかし、私はdtype
f
からa = np.array([4, -9], 'f')
a[0] = 0.4
a
を変更したときにそれは私にnumpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
ためarray([ 0.40000001, -9. ], dtype=float32)
文書のうち予想プットを与える氏は述べています:
DTYPE:データ型、オプション 配列の目的のデータ型。指定されていない場合、型はシーケンス内のオブジェクトを保持するために必要な最小型として決定されます。この引数は、配列を 'アップキャスト'するためにのみ使用できます。ダウンキャストの場合は、.astype(t)メソッドを使用します。
私はそれが唯一の0.4
のinteger
一部を認識し、したがって、私に0
を与えたfloat
と配列のインデックスを作成したときに、それはintegers
などに値を初期化し、配列を初期化するとき。これは私がそれを理解する方法です。これは正しいです?。しかし、私はまだこの動作に驚いています。
質問:ここでは正確に何が起こっていますか?
優れています。これは問題を解決します。明らかに、私は学ぶべきことがたくさんある。 – minibuffer
浮動小数点と整数の両方を保存するために 'dtype = object'を使う考え方は嫌いです。必要に応じて文字列や数値を混ぜることもできますし、リストのようなものを保持するのにも適しています。しかし、純粋に数値データの場合は、数字のdtypeを使用する方が良いでしょう。 – hpaulj
@hpaulj利用可能です。数値以外のタイプの場合は、ベクトル化のメリットをすべて失います。 –