d1_ndarray_indexing_1.py

プログラム一覧に戻る

import numpy as np


arr = np.arange(3, 17)  # 3から16までの整数が並んだndarrayを生成し、arrという名前を付ける
print(arr)  # [ 3  4  5  6  7  8  9 10 11 12 13 14 15 16] が出力される
print(arr.size)  # 14 が出力される

# 配列の中の1つの要素へのアクセス
print("access to a single element")
print(arr[0])  # 3 が出力される (ndarrayのインデックスはゼロ始まり)
print(arr[2])  # 5 が出力される
print(arr[13], arr[arr.size - 1], arr[-1])  # 16 が3つ出力される (arr[-1] は arr[arr.size - 1]と等価)
print(arr[-5])  # 12 が出力される (arr[-5] は arr[arr.size - 5]と等価)

# 配列の中の一部分へのアクセス(その1)
print("slicing of array (part 1)")
print(arr[:6])  # [ 3  4  5  6  7  8]が出力される(ゼロ番から5(=6-1)番までのインデックスの要素)
print(arr[2:])  # [ 5  6  7  8  9 10 11 12 13 14 15 16] が出力される(2番から最後までのインデックスの要素)
print(arr[2:6])  # [5 6 7 8] が出力される(2番から5(=6-1)番までのインデックスの要素)
print(arr[:-9])  # [3 4 5 6 7] が出力される (arr[:-9] は arr[:arr.size - 9]と等価)
print(arr[-5:])  # [12 13 14 15 16] が出力される (arr[-5:] は arr[arr.size - 5:]と等価)
print(arr[-9:-5])  # [ 8  9 10 11] が出力される (arr[-9:-5] は arr[arr.size - 9:arr.size - 5]と等価)
print(arr[:])  # [ 3  4  5  6  7  8  9 10 11 12 13 14 15 16] が出力される (ゼロ番から最後までのインデックスの要素)

# 配列の中の一部分へのアクセス(その2)
print("slicing of array (part 2)")
print(arr[:6:2])  # [3 5 7] が出力される(ゼロ番から5(=6-1)番までのインデックスの要素を2つ飛ばしで)
print(arr[2::3])  # [ 5  8 11 14] が出力される(2番から最後までのインデックスの要素を3つ飛ばしで)
print(arr[2:6:2])  # [5 7] が出力される(2番から5(=6-1)番までのインデックスの要素を2つ飛ばしで)
print(arr[:-9:2])  # [3 5 7] が出力される (arr[:-9:2] は arr[:arr.size - 9:2]と等価)
print(arr[-5::3])  # [12 15] が出力される (arr[-5:] は arr[arr.size - 5::3]と等価)
print(arr[-9:-5:2])  # [ 8 10] が出力される (arr[-9:-5] は arr[arr.size - 9:arr.size - 5:2]と等価)
print(arr[::5])  # [ 3  8 13] が出力される (ゼロ番から最後までのインデックスの要素を5つ飛ばしで)

# 配列の中の一部分へのアクセス(その3)
print("slicing of array (part 3)")
print(arr[10:2:-1])  # [13 12 11 10  9  8  7  6] が出力される (10番から2番までのインデックスの要素を逆順に)
print(arr[8::-1])  # [11 10  9  8  7  6  5  4  3] が出力される (8番から0番までのインデックスの要素を逆順に)
print(arr[:6:-1])  # [16 15 14 13 12 11 10] が出力される (最後から6番までのインデックスの要素を逆順に)
print(arr[::-1])  # [16 15 14 13 12 11 10  9  8  7  6  5  4  3] が出力される (最後から0番までのインデックスの要素を逆順に)
print(arr[10:2:-3])  # [13 10  7] が出力される (10番から2番までのインデックスの要素を3つ飛ばしで逆順に)
print(arr[8::-2])  # [11  9  7  5  3] が出力される (8番から0番までのインデックスの要素を2つ飛ばしで逆順に)
print(arr[:6:-4])  # [16 12] が出力される (最後から6番までのインデックスの要素を4つ飛ばしで逆順に)
print(arr[::-5])  # [16 11  6] が出力される (最後から0番までのインデックスの要素を5つ飛ばしで逆順に)