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

関数ndarray.partitionの使い方の例

関数の機能:指定した要素の前後に小さい値または大きい値が集まる様に並び替える

例1 : 要素を1つだけ指定

>>> a = np.array([3, 4, 2, 1, 8, 3, 3])
>>> a.partition(3)
>>> a
array([3, 1, 2, 3, 8, 4, 3])
この例では7要素の配列の4つ目の要素(インデックスは3)で仕切って並べ替えています。4つ目の要素は3で、1〜3つ目の要素は3以下に、5〜7つ目の要素は3以上になっていることが分かります。

例2 : 要素を2つ指定

>>> a = np.array([3, 4, 2, 1, 8, 3, 4, 7, 1, 9])
>>> a.partition((2,5))
>>> a
array([1, 1, 2, 3, 3, 4, 8, 7, 4, 9])
この例では10要素の配列の3つ目の要素(インデックスは2)と6つ目の要素(インデックスは5)で仕切って並べ替えています。仕切った2箇所についてそれぞれ、仕切った要素より前方はその要素以下に、後方はその要素以上になっていることが分かります。
関連項目
関数ndarray.argpartitionの使い方の例

関数ndarray.transposeの使い方の例

関数の機能:軸を転置した配列のビューを返却

>>> a = np.arange(2*3*4).reshape((2, 3, 4))
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
>>> b = a.transpose((1,2,0))
>>> b
array([[[ 0, 12],
        [ 1, 13],
        [ 2, 14],
        [ 3, 15]],

       [[ 4, 16],
        [ 5, 17],
        [ 6, 18],
        [ 7, 19]],

       [[ 8, 20],
        [ 9, 21],
        [10, 22],
        [11, 23]]])
>>> b.shape
(3, 4, 2)
この例では、配列aの軸を下記のように入れ替えています。
  axis 1 → axis 0
  axis 2 → axis 1
  axis 0 → axis 2
パラメータの(1,2,0)は、赤字の数字を並べたものです。
元の配列の持つ軸が全て指定されていなかったり、元の配列にない軸が指定されたりすると下記の様にエラーとなります。
>>> a.transpose((1,0))
Traceback (most recent call last):
ValueError: axes don't match array
>>> a.transpose((1,0,3))
Traceback (most recent call last):
numpy.AxisError: axis 3 is out of bounds for array of dimension 3
関連項目
関数ndarray.swapaxesの使い方の例
属性ndarray.Tの使い方の例

関数ndarray.tofileの使い方の例

関数の機能:配列の内容をファイルに書き出す

>>> a = np.array([3.1, 4.3, 5.7])
>>> a.tofile('outputFile.txt', sep=',')
1つ目のパラメータがファイル名で、2つ目のsepは区切り文字です。
これでoutputFile.txtという名前のファイルが作成され、テキストエディッターで中身を確認すると下記の様になっています。
3.1,4.3,5.7
関連項目
関数ndarray.tobytesの使い方の例
関数ndarray.tolistの使い方の例

関数ndarray.traceの使い方の例

関数の機能:対角要素の合計値を返却

>>> a = np.array([[1, 2, 3],
	          [4, 5, 6],
	          [7, 8, 9]])
>>> a.trace()
15
この例では対角要素の 1, 5, 9 の合計値を計算しています。
>>> a.trace(offset=1)
8
>>> a.trace(offset=-1)
12
offsetのパラメータを指定すると主対角線からずれた位置の対角線の合計値を求めることができます。
offsetが+1なら右上に1つずれた対角線の合計値、offsetが-1なら左下に1つずれた対角線の合計値がそれぞれ求まります。
関連項目
関数ndarray.cumsumと関数ndarray.cumprodの使い方の例
関数ndarray.prodの使い方の例
関数ndarray.sumの使い方の例
関数ndarray.diagonalの使い方の例

関数ndarray.tolistの使い方の例

関数の機能:ndarrayの配列をPythonのListに変換したものを返却

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

>>> a = np.array([7, 5, 3])
>>> l = a.tolist()
>>> l
[7, 5, 3]
>>> type(l)
<class 'list'>

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

>>> a = np.array([[1,  2,  3,  4],
	          [5,  6,  7,  8],
	          [9, 10, 11, 12]])
>>> a.tolist()
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
関連項目
関数ndarray.tobytesの使い方の例
関数ndarray.tofileの使い方の例

関数ndarray.takeの使い方の例

関数の機能:インデックスのリスト等を引数として渡して配列の要素を取り出して作成された配列を返却

例1 : 1次元配列の場合

>>> a = np.array([5, 3, 9, 2, 1])
>>> indices = [2,0,4]
>>> a.take(indices)
array([9, 5, 1])
この例ではインデックス2,0,4の順に要素を取り出して配列が作成されています。

例2 : 2次元配列の列を選択

>>> a = np.array([[1,  2,  3,  4],
	          [5,  6,  7,  8],
	          [9, 10, 11, 12]])
>>> indices = [2,0]
>>> a.take(indices, axis=1)
array([[ 3,  1],
       [ 7,  5],
       [11,  9]])
この例では列のインデックス2,0の順に列を取り出して配列が作成されています。
列方向に取り出すために、axis=1 と指定しています。
関連項目
関数ndarray.chooseの使い方の例
関数ndarray.compressの使い方の例

関数ndarray.swapaxesの使い方の例

関数の機能:軸を交換した配列のビューを返却

>>> a = np.array([[1,  2,  3,  4],
	          [5,  6,  7,  8],
	          [9, 10, 11, 12]])
>>> a.swapaxes(0, 1)
array([[ 1,  5,  9],
       [ 2,  6, 10],
       [ 3,  7, 11],
       [ 4,  8, 12]])
パラメータとして2つの軸を指定します。
この例では、0軸と1軸を交換した配列を返却しています。
返却される配列はビュー(view)で、データの参照先は元の配列と同じです。なので、要素の値を変更すると元の配列の値も変わります。
>>> b = a.swapaxes(0, 1)
>>> b[1, 1] = 25
>>> b
array([[ 1,  5,  9],
       [ 2, 25, 10],
       [ 3,  7, 11],
       [ 4,  8, 12]])
>>> a
array([[ 1,  2,  3,  4],
       [ 5, 25,  7,  8],
       [ 9, 10, 11, 12]])
関連項目
関数ndarray.transposeの使い方の例
属性ndarray.Tの使い方の例

関数ndarray.squeezeの使い方の例

関数の機能:大きさ1の軸を除去した配列を返却

例1 : 除去する軸の指定なし

>>> a = np.array([[[[2]], [[6]], [[7]]]])
>>> a.shape
(1, 3, 1, 1)
>>> a.squeeze()
array([2, 6, 7])
>>> a.squeeze().shape
(3,)
この例では、0,2,3の軸が大きさ1となっており、これらが除去されています。

例2 : 除去する軸を指定

>>> a.squeeze(axis=(2,3))
array([[2, 6, 7]])
>>> a.squeeze(axis=(2,3)).shape
(1, 3)
2,3軸のみを除去する様に指定した例です。0軸は大きさ1ですがそのまま残り、2,3軸のみが除去されました。
関連項目
関数ndarray.ravelの使い方の例
関数ndarray.reshapeの使い方の例
関数ndarray.resizeの使い方の例
関数ndarray.flattenの使い方の例
属性ndarray.ndimの使い方の例
属性ndarray.shapeの使い方の例
属性ndarray.size, ndarray.itemsize, ndarray.nbyteの使い方の例
属性ndarray.stridesの使い方の例

関数ndarray.roundの使い方の例

関数の機能:各要素の値を丸めた配列を返却

>>> a = np.array([-3.46, -1.52, 0.32, 5.85])
>>> a.round(decimals=1)
array([-3.5, -1.5,  0.3,  5.8])
>>> a.round(decimals=0)
array([-3., -2.,  0.,  6.])
パラメータ decimals は、丸めた後の数字の小数点以下の桁数です。