d1_ndarray_indexing_2.py

プログラム一覧に戻る

import numpy as np


arr = np.arange(3, 15).reshape(4, 3)  # 4行3列のndarrayを生成し、arrという名前を付ける
print(arr)  # [[3  4  5] [6  7  8] [9 10 11] [12 13 14]] が出力される
print(arr.size)  # 12 が出力される
print(arr.shape)  # (4, 3) が出力される

# 配列の中の1つの要素へのアクセス
print("access to a single element")
print(arr[0, 0])  # 3 (0行0列目の要素)が出力される (行インデックスと列インデックスをカンマで区切って指定)
print(arr[2, 1])  # 10 (2行1列目の要素)が出力される
print(arr[-1, -3], arr[arr.shape[0] - 1, arr.shape[1] - 3])
# ↑ 12 が2つ出力される (負の整数で指定すると後ろから数えた列数、行数の指定になる)

# 配列の中の一部分へのアクセス
print("slicing of 2d array")
print(arr[:, :])  # [[3  4  5] [6  7  8] [9 10 11] [12 13 14]] が出力される (print(arr) と等価)
print(arr[1, :])  # [6  7 8]] が出力される(1次元ndarray)
print(arr[:1, :])  # [[3  4 5]] が出力される(2次元ndarray)
print(arr[1:, :])  # [[6  7  8] [9 10 11] [12 13 14]] が出力される
print(arr[:, :2])  # [[3  4] [6  7] [9 10] [12 13]] が出力される
print(arr[:, 2:])  # [[5] [8] [11] [14]] が出力される
print(arr[1:, 2:])  # [[8] [11] [14]] が出力される
print(arr[:1, 1:])  # [[4  5]] が出力される