2017-04-22 11 views
0

dtype = 'float'のときにオブジェクトをフィードしようとすると、numpyがエラーをスローするnumpyにオブジェクトをfloatとして受け入れる方法を教えてください。

しかし、浮動体もオブジェクトです。私はどのようにnumpyをフロートのように私のオブジェクトを扱うことができますか?

編集:私は乗算と加算の際に浮動小数点を返すオブジェクトを持っています。私は線形変換の後に浮動小数点になるので、浮動小数点として扱いたいと思う。

だから私のオブジェクト:

Class some_class() 
    def __init__(self,a) 
     self.a=a 
    def __mul__(self.x): 
     Return float(a*x) 
    ... 
    def __radd__(self,x): 
     return float(a+x) 

私はそれがfloatとしてこれを中断してもらうにはどうすればよいですか?

編集2:私はdtypeを根本的に誤解していますか?私の論理は、浮動小数点のように動作するので、そのように扱われるべきだということです。これは間違っていますか?また、np.exp()とnp.dot()はオブジェクト型に対して動作しないように見えるので、このような質問もします。

EDIT3:dtypesとastype機能について私に教えてくれてありがとうみんな:)

+1

'None'はオブジェクトで、' [] 'と' {'a':3} 'もそうです。それらのどれもフロートとして格納することはできません。 'float(None)'を実行しようとするとエラーが発生します。 – hpaulj

+1

コマンドを書くことができますか? – Sklert

+1

これは古典的な正方形と長方形の質問です。すべての浮動小数点はオブジェクトとして解釈可能ですが、すべてのオブジェクトが浮動小数点として解釈可能なわけではありません。 –

答えて

1

あなたが値をfloatに、あなたの結果numpyの配列を型キャストしたい場合は、詳細についてはthisのリンクを参照してくださいastype($TYPE)

>>> x = np.array([1, 2, 2.5]) 
>>> x 
array([ 1. , 2. , 2.5]) 
>>> 
>>> x.astype(float) 
array([ 1. , 2. , 2.5]) 

を使用。

+0

これは素晴らしく働いています:) thanks –

+0

喜んで助ける;) –

関連する問題