マニュアルで提案されているように、距離/ビンセンティを何らかの形式で「エクスポート」する必要があります。たとえば、次のようにします。
> from geopy.distance import vincenty
> newport_ri = (41.49008, -71.312796)
> cleveland_oh = (41.499498, -81.695391)
> print(vincenty(newport_ri, cleveland_oh).miles)
538.3904451566326
vincenty
(すでに述べたように)数学オペランドをサポートしていないgeopy外のオブジェクトであるため、iteselfを処理することはできません。を使用して、データ オブジェクト内の値を抽出する必要があります.miles
。その他の可能な値については、完全なドキュメントを参照してください: GeoPy ドキュメント
タイプの違いを参照してください。
> type(vincenty(newport_ri, cleveland_oh))
geopy.distance.vincenty
> type(vincenty(newport_ri, cleveland_oh).miles)
float
これで次のように計算できます。
> vincenty(newport_ri, cleveland_oh).miles
538.3904451566326
> vincenty(newport_ri, cleveland_oh).miles * 2
1076.7808903132652
または、これからnumpy配列が本当に必要な場合:
> np.array(vincenty(newport_ri, cleveland_oh).miles)
array(538.3904451566326)
> type(np.array(vincenty(newport_ri, cleveland_oh).miles))
numpy.ndarray
編集dtype
: NumPy の組み込みパラメーターを使用して、そのデータ型を強制することもできることに注意してください。
> np.array(vincenty(newport_ri, cleveland_oh).miles, dtype=np.float32)
array(538.3904418945312, dtype=float32)
> np.array(vincenty(newport_ri, cleveland_oh).miles, dtype=np.float64)
array(538.3904451566326) # dtype=float64, default type here
> np.array(vincenty(newport_ri, cleveland_oh).miles, dtype=np.int32)
array(538, dtype=int32)
これは、大量のデータを保存/ロードしているが、常に特定の精度が必要な場合に役立ちます。