NumPy

NumPy Quickstart チュートリアルに取り組む (1-1) 基本

公式のQuickstartチュートリアルはこちらから

概要

NumPyのメインのオブジェクトは、同質的な多次元配列(すべて同じ型の要素の配列で、非負の整数のタプルでインデックスが付いている)

NumPyでは、次元を軸と呼ぶ。(例えば、3次元空間 [ 1, 2, 1 ] の点の座標は1つの軸を持つ。3つの要素があるので、長さは3)

NumPyの配列クラスはndarrayと呼ぶ。(alias array)

numpy.arrayはStandard Python Libraryのクラスarray.arrayと同じではないことに注意。

ndarrayオブジェクトの重要な属性

ndarray.ndim

配列の軸数(次元)

ndarray.shape

配列の次元。各次元における配列のサイズを示す整数のタプル。n行m列の行列の場合、shape は (n,m) となる。shape タプルの長さは軸の数 ndim となる。

ndarray.size

配列の要素数の合計。Shapeの要素の積に等しい。

ndarray.dtype

配列の要素の型を記述するオブジェクト。Pythonの標準的な型を使ってdtypeを作成したり、指定できる。(例:numpy.int32, numpy.int16, numpy.float64)

ndarray.itemize

配列の各要素のサイズをバイト単位で表す。例えば、float64型の要素を持つ配列はアイテムサイズが8(=64/8)で、complex32型の要素はアイテムサイズが4(=32/8)。これはndarray.dtype.itemsizeと同じ。

ndarray.data

配列の実際の要素を含むバッファ。配列の要素にインデックス機能を使用してアクセスするため、この属性を使用する必要はない。

サンプルコード

import numpy as np

# ndarrayの作成と、配列の変形
a = np.arange(15).reshape(3, 5)
'''
array([[ 0,  1,  2,  3,  4],
                [ 5,  6,  7,  8,  9],
                [10, 11, 12, 13, 14]])
'''
print(a.ndim)  # 2
print(a.shape)  # (3, 5)
print(a.size)  # 15
print(a.dtype.name)  # 'int32'
print(a.itemsize)  # 4
print(type(a))  # <class 'numpy.ndarray'>
print(a.data) # <memory at 0x000002188CD4C208>

b = np.array([6, 7, 8])
print(b)  # array([6 7 8])
print(type(b))  # <class 'numpy.ndarray'>