「numpy」カテゴリーアーカイブ

関数ndarray.resizeの使い方の例

関数の機能:配列の形とサイズを変更

例1 : 1次元から2次元へ

>>> a = np.array([1, 2, 3, 4, 5, 6])
>>> a.resize((2,2))
>>> a
array([[1, 2],
       [3, 4]])
6要素1次元の配列を2行2列の配列を作成した例です。
元の配列は6要素でしたが4要素に減り、後ろの2要素は削除されています。
>>> a = np.array([1, 2, 3, 4, 5, 6])
>>> a.resize((3,3))
>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [0, 0, 0]])
6要素1次元の配列を3行3列の配列を作成した例です。
元の配列より要素数の大きい配列に変更した場合、要素の足らない分はゼロが入ります。

例2 : 2次元から2次元へ

>>> a = np.array([[1,  2,  3,  4],
	          [5,  6,  7,  8],
	          [9, 10, 11, 12]])
>>> a.resize((2, 2))
>>> a
array([[1, 2],
       [3, 4]])
元の配列が2次元の場合、配列を一旦1次元化したものに対して、1次元の配列の場合と同様の処理が行われます。
関連項目
関数ndarray.ravelの使い方の例
関数ndarray.reshapeの使い方の例
関数ndarray.squeezeの使い方の例
関数ndarray.flattenの使い方の例
属性ndarray.ndimの使い方の例
属性ndarray.shapeの使い方の例
属性ndarray.size, ndarray.itemsize, ndarray.nbyteの使い方の例
属性ndarray.stridesの使い方の例

関数ndarray.reshapeの使い方の例

関数の機能:形を変更した配列を返却

例1 : 1次元から2次元へ

>>> a = np.array([1, 2, 3, 4, 5, 6])
>>> a.reshape((2,3))
array([[1, 2, 3],
       [4, 5, 6]])
6要素1次元の配列を2行3列の配列を作成した例です。
行優先で2次元の配列が作成されます。
order='F' と指定すれば列優先で作成することもできます。
>>> a.reshape((2,3), order='F')
array([[1, 3, 5],
       [2, 4, 6]])
元の配列の要素数と変更後の配列の大きさが異なるとエラーが発生します。
>>> a.reshape((2,2))
Traceback (most recent call last):
ValueError: cannot reshape array of size 6 into shape (2,2)

例2 : 2次元から2次元へ

>>> a = np.array([[1,  2,  3,  4],
	          [5,  6,  7,  8],
	          [9, 10, 11, 12]])
>>> a.reshape((4,3))
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]])
関連項目
関数ndarray.ravelの使い方の例
関数ndarray.resizeの使い方の例
関数ndarray.squeezeの使い方の例
関数ndarray.flattenの使い方の例
属性ndarray.ndimの使い方の例
属性ndarray.shapeの使い方の例
属性ndarray.size, ndarray.itemsize, ndarray.nbyteの使い方の例
属性ndarray.stridesの使い方の例

関数ndarray.repeatの使い方の例

関数の機能:配列の要素を繰り返し並べて作った配列を返却

例1 : 軸の指定なし

>>> a
array([[0, 1],
       [2, 3]])
>>> a.repeat(2)
array([0, 0, 1, 1, 2, 2, 3, 3])
パラメータの数字は繰り返し回数です。
ここでは2と指定したので、配列の各要素が2回ずつ繰り返し並べられた配列が返却されています。
なお、軸を指定しない場合、1次元化した配列に対して処理が行われます。

例2 : 軸を指定

>>> a.repeat(2, axis=0)
array([[0, 1],
       [0, 1],
       [2, 3],
       [2, 3]])
>>> a.repeat(2, axis=1)
array([[0, 0, 1, 1],
       [2, 2, 3, 3]])
軸(axis)を指定すると、その軸の方向に要素が繰り返し並べられます。
axis=0 : 縦方向
axis=1 : 横方向

関数ndarray.ravelの使い方の例

関数の機能:次元を1に落とした配列を返却

例1 : 行優先で1次元化

>>> a = np.array([[1, 2, 3],
	          [4, 5, 6],
	          [7, 8, 9]])
>>> a.ravel()
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
パラメータ指定なしだと、行優先で1次元化されます。

例2 : 列優先で1次元化

>>> a.ravel(order='F')
array([1, 4, 7, 2, 5, 8, 3, 6, 9])
列優先で1次元化したい場合、orderのパラメータを'F'とします。
関連項目
関数ndarray.reshapeの使い方の例
関数ndarray.resizeの使い方の例
関数ndarray.squeezeの使い方の例
関数ndarray.flattenの使い方の例
属性ndarray.ndimの使い方の例
属性ndarray.shapeの使い方の例
属性ndarray.size, ndarray.itemsize, ndarray.nbyteの使い方の例
属性ndarray.stridesの使い方の例

関数ndarray.putの使い方の例

関数の機能:配列の特定の要素の値を置き換える

例1 : 1次元の配列の場合

a = np.array([1, 2, 3])
>>> a.put([0, 2], [7, 12])
>>> a
array([ 7,  2, 12])
パラメーターは、1つ目が要素のインデックス、2つ目が置き換える値です。

例2 : 2次元の配列の場合

>>> a = np.array([[5, 7, 1],
	          [2, 4, 9]])
>>> a.put([0, 5], [18, 12])
>>> a
array([[18,  7,  1],
       [ 2,  4, 12]])
インデックスの値は配列の次元を1次元にして考えます。
ndarray.putの説明図

関数ndarray.nonzeroの使い方の例

関数の機能:ゼロでない要素のインデックスを返却

>>> a = np.array([[0, 7, 0],
	          [0, 1, 0],
	          [4, 0, 0]])
>>> a.nonzero()
(array([0, 1, 2]), array([1, 1, 0]))
返却値はタプル型で、1つ目の要素が縦方向(axis=0)のインデックス、2つ目の要素が横方向(axis=1)のインデックスを示しています。

関数ndarray.itemの使い方の例

関数の機能:要素をコピーしてPythonの標準スカラー値として返却

>>> a = np.array([[0, 1, 2],
	          [3, 4, 5],
	          [6, 7, 8]])
>>> a.item((1, 2))
5
インデックス表記を使って、a[1,2] と書くのと同じ様に見えますが、返却値のオブジェクトの種類が異なります。
>>> type(a[1,2])
<class 'numpy.int64'>
>>> type(a.item((1, 2)))
<class 'int'>