NumPy-基本となるインデックスとスライスしました

基本となるインデックスとスライスしました

まず、あなたは新しいボリュームに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]]
-----------

おすすめ

転載: www.cnblogs.com/chanyuli/p/11716979.html