私は辞書を持っています
_Samples = {5.207403005022627: 0.69973543384229719, 6.8970222167794759: 0.080782939731898179, 7.8338517407140973: 0.10308033284258854, 8.5301143255505334: 0.018640838362318335, 10.418899728838058: 0.14427355015329846, 5.3983946820220501: 0.51319796560976771}
_
keys
とvalues
を2つのnumpy
配列に分離したいと思います。 np.array(Samples.keys(),dtype=np.float)
を試しましたが、エラーが発生しましたTypeError: float() argument must be a string or a number
np.fromiter
を使用して、辞書のキーと値のビューからnumpy
配列を直接作成できます。
python 3:
keys = np.fromiter(Samples.keys(), dtype=float)
vals = np.fromiter(Samples.values(), dtype=float)
python 2:
keys = np.fromiter(Samples.iterkeys(), dtype=float)
vals = np.fromiter(Samples.itervalues(), dtype=float)
python 3.4の場合、以下は単純に機能します。
_Samples = {5.207403005022627: 0.69973543384229719, 6.8970222167794759: 0.080782939731898179, 7.8338517407140973: 0.10308033284258854, 8.5301143255505334: 0.018640838362318335, 10.418899728838058: 0.14427355015329846, 5.3983946820220501: 0.51319796560976771}
keys = np.array(list(Samples.keys()))
values = np.array(list(Samples.values()))
_
np.array(Samples.values())
がPython 3で期待する結果を提供しない理由は、Python 3で、values()メソッドがdictは反復可能なビューを返しますが、Python 2では、キーの実際のリストを返します。
keys = np.array(list(Samples.keys()))
は実際にはPython 2.7でも動作し、コードをバージョンにとらわれないようにします。ただし、list()
への追加の呼び出しにより、速度が低下しますわずかに。
keys = np.array(dictionary.keys())
values = np.array(dictionary.values())
すべての値をリストに割り当て、np.array()
に変換するだけです。
import numpy as np
Samples = {5.207403005022627: 0.69973543384229719, 6.8970222167794759: 0.080782939731898179, 7.8338517407140973: 0.10308033284258854, 8.5301143255505334: 0.018640838362318335, 10.418899728838058: 0.14427355015329846, 5.3983946820220501: 0.51319796560976771}
keys = np.array(Samples.keys())
vals = np.array(Samples.values())
または、もし それを繰り返したい場合 :
import numpy as np
Samples = {5.207403005022627: 0.69973543384229719, 6.8970222167794759: 0.080782939731898179, 7.8338517407140973: 0.10308033284258854, 8.5301143255505334: 0.018640838362318335, 10.418899728838058: 0.14427355015329846, 5.3983946820220501: 0.51319796560976771}
keys = vals = []
for k, v in Samples.items():
keys.append(k)
vals.append(v)
keys = np.array(keys)
vals = np.array(vals)