27

次の配列があるとします。

import numpy as np
a = np.arange(1, 10)
a = a.reshape(len(a), 1)
array([[1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])

今、インデックス 4 から最後までの要素にアクセスしたい:

a[3:-1]
array([[4],
       [5],
       [6],
       [7],
       [8]])

これを行うと、結果のベクトルに最後の要素がありません。6 つではなく 5 つの要素になりました。なぜそうなるのでしょうか。最後の要素を追加せずに取得するにはどうすればよいですか?

期待される出力:

array([[4],
       [5],
       [6],
       [7],
       [8],
       [9]])

前もって感謝します

4

1 に答える 1

58

は最後の[:-1]要素を削除します。それ以外の

a[3:-1]

書きます

a[3:]

Pythonのスライス表記についてはこちらをご覧ください:Pythonのスライス表記について説明する

NumPyスライシングはその拡張です。NumPyチュートリアルには、インデックス作成、スライス、反復などの内容が含まれています。

于 2012-12-05T20:46:28.617 に答える