基本となるインデックスとスライスしました
まず、あなたは新しいボリュームにndarray配列を作成します。
arr = np.arange(10)
そして、類似したのpythonのリストには、あなたは、インデックスとスライスでの値とすることができます
print(arr[6]) #索引从0开始
print(arr[5:8]) #顾头不顾尾
6
[5 6 7]
ただ、リストのように、配列スライスもかかわらず、尾の値の世話、およびインデックスはゼロベースです。
重要な例
arr = np.arange(10)
piece_of_arr = arr[4:6]
piece_of_arr[:] = 24
print(arr)
[0 1 2 3 24 24 6 7 8 9]
はい、Pythonの組み込みのリストから別の、配列のスライスは、元のビューの配列は、それが元の配列に反映されるデータは、任意のキャリア変更のコピーがコピーされないことを意味しています。
プログラミング言語の他の配列と比較すると、彼らはデータを複製することがより熱望している、原因numpyのは、あなたがデータの連続レプリケーション場合に何が起こるかを考えることができ、非常に大きな配列を処理に適するように設計されているので、それはそう簡単に開発者が複製することはできませんnumpyのどのくらいのメモリの問題を引き起こす可能性があります。
あなたはまだ配列のコピーのスライスをしたい場合でも、ビューではなく、それは明示的に、配列をコピーする必要があります
例えば:[5 :. 8] ARR .copy()
スライスインデックス付きの配列
import numpy as np
arr1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr1)
print('-----------')
print(arr1[:2])
print('-----------')
print(arr1[:2, 1:])
print('-----------')
print(arr1[1,:2])
print('-----------')
print(arr1[:,:1])
print('-----------')
arr1[:2, 1:] = 0
print(arr1)
print('-----------')
結果
[[1 2 3]
[4 5 6]
[7 8 9]]
-----------
[[1 2 3]
[4 5 6]]
-----------
[[2 3]
[5 6]]
-----------
[4 5]
-----------
[[1]
[4]
[7]]
-----------
[[1 0 0]
[4 0 0]
[7 8 9]]
-----------