2016-05-22 8 views
0

r_演算子を使ってPython/numpyで配列を作成したいとします。numpy.r_配列の構築で "One off"エラーが発生する

>>> import numpy as np 
>>> np.r_[0.02:0.04:0.01] 
array([ 0.02, 0.03]) 
>>> np.r_[0.04:0.06:0.01] 
array([ 0.04, 0.05]) 

どちらのケースも期待どおりに動作します。しかし、私が限界を変更した場合:

>>> np.r_[0.03:0.05:0.01] #????? 
array([ 0.03, 0.04, 0.05]) 

どうしてですか?それは不正確な浮動小数点表記と関係があるでしょうか?それともバグですか?このlinspaceを使用する複雑な「ステップ」で

+0

リンクされた答えには、「np.r_」は全く言及されていません。その答えは 'np.r_'が' arange'を使うことができるので意味がありますが、正確な複製ではありません。幸運にも私は電車の下で私の答えを得ました。 :) – hpaulj

答えて

0

In [68]: np.r_[0.02:.04:3j] 
Out[68]: array([ 0.02, 0.03, 0.04]) 

In [69]: np.r_[0.03:.05:3j] 
Out[69]: array([ 0.03, 0.04, 0.05]) 

フロート「ステップ」で、それは結果が非整数手順と矛盾することができることに注意を有し、arangeを使用します。詳細はlinspaceをお勧めします。

np.mgridも擬似複合体ステップ表記を受け入れます。

これらのクラスの仕組みの詳細については、/usr/lib/python3/dist-packages/numpy/lib/index_tricks.pyを参照してください。

関連する問題