2016-08-03 14 views
-3

私は小さいものから最も大きいものであることが再配置しようとしている次の配列奇妙なPythonのnumpyの配列のインデックスの挙動

[0. 100. 200. 300. 400. -500. -400. -300. -200. -100.] 

を持っています。

jに格納されているposからnegへの転換点が見つかりました。

私は次のように印刷する場合、私はなぜそれがすべての方法400まで行かない?

>>print(frequencies[4]) 
400.0 

しかし

>>print(frequencies[0:4-1]) 
[0. 100. 200. 300.] 

を取得構文規則の奇妙な選択のようです。

+0

Pythonのコンベンションが気に入らない場合は、自分の好みの言語を構築することをお勧めします。 – Julien

+0

あなたのコードではどうやって取得できますか?どのような価値がありますか – Glostas

+0

私はそれが良い選択だと思います。 'a = [9、8、7、6]'ならば、 'a [0:2] + a [2:4]'は '[9、8、7、6]'を再度与えます。 '2'を使うと、最初の部分の終わりと2番目の部分の開始の値が同じになります。 – Matthias

答えて

4

ほとんどの場合、振る舞いは[)です。これは、左(または開始)引数がインクルーシブで、右(または終了)引数が排他的であることを意味します。スライス、文字列スライス、関数、 などを表示してください。

numpyはこの規則に従うだけです。

+0

興味深いことに、[ランダムモジュール](https://docs.python.org/2/library/random.html#random.randint)を除きます。それはいつも私を悩ませている、私は彼らがそこで大会から壊れることを決めた理由を確信していない。 – James

+0

@Jamesランダムモジュールは、独自の規約(またはこの問題の慣習)でも従っていないようです。https://docs.python.org/2/library/random.html#random.random( 'random .random'から 'random.randint'の振る舞いに) – DeepSpace

+0

Huh。だから私はそれがちょうど 'randint'だと思います。奇妙な。 – James