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

関数ndarray.chooseの使い方の例

関数の機能: 配列の各要素の値をインデックスとして、別の配列から値を選択して配列を作成し返却

下記の例では、「別の配列」の名前をchoicesとしています。

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

>>> a = np.array([[1, 2, 0],
	          [4, 0, 1]])
>>> choices = np.array([0.3, 1.2, 2.1, 3.4, 4.6])
>>> a.choose(choices)
array([[1.2, 2.1, 0.3],
       [4.6, 0.3, 1.2]])

例2 : choises のサイズ以上のインデックス値がある場合

>>> a = np.array([1, 3, 0])
>>> choices = np.array([0.3, 1.2, 2.1])
>>> a.choose(choices)
Traceback (most recent call last):
    a.choose(choices)
ValueError: invalid entry in choice array
choisesのインデックスは0〜2の範囲であるにも関わらず、配列aの2つ目の要素がこの範囲外である3であったため、エラーが発生しました。
choose関数のパラメーターmodeを'wrap'か'clip'にすると、インデックスの値を下記のように変えて処理が行われます。

mode = 'wrap' : ind % n に変更
mode = 'clip' : indが負の値なら0に、n以上ならn-1に変更

ここで、インデックス値はindとし、choicesのインデックスの範囲は[0, n-1]としています。
>>> a = np.arange(-5,5)
>>> a
array([-5, -4, -3, -2, -1,  0,  1,  2,  3,  4])
>>> a.choose(choices, mode='wrap')
array([1.2, 2.1, 0.3, 1.2, 2.1, 0.3, 1.2, 2.1, 0.3, 1.2])
>>> a.choose(choices, mode='clip')
array([0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 1.2, 2.1, 2.1, 2.1])

例3 : choices が2次元の配列の場合

>>> a = np.array([2,0,1])
>>> choices = np.array([[0, 1, 2],
		        [3, 4, 5],
		        [6, 7, 8]])
>>> a.choose(choices)
array([6, 1, 5])
関連項目
関数ndarray.compressの使い方の例
関数ndarray.takeの使い方の例

関数ndarray.argsortの使い方の例

関数の機能:配列の要素を昇順に並べ替えたときのインデックスを返却

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

>>> a = np.array([4, 2, 9, 3, 6])
>>> a.argsort()
array([1, 3, 0, 4, 2])

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

>>> a = np.array([[8, 1, 5],
	          [6, 3, 2]])
>>> a.argsort(axis=0)
array([[1, 0, 1],
       [0, 1, 0]])
>>> a.argsort(axis=1)
array([[1, 2, 0],
       [2, 1, 0]])
関連項目
関数ndarray.sortの使い方の例

関数ndarray.sortの使い方の例

関数の機能:配列の要素を昇順に並べ替える

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

>>> a = np.array([3, 1, 6, 5, 2])
>>> a.sort()
>>> a
array([1, 2, 3, 5, 6])

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

>>> a = np.array([[7, 1, 6],
	          [4, 2, 3]])
>>> a.sort(axis=0)
>>> a
array([[4, 1, 3],
       [7, 2, 6]])
>>> a = np.array([[7, 1, 6],
	          [4, 2, 3]])
>>> a.sort(axis=1)
>>> a
array([[1, 6, 7],
       [2, 3, 4]])

例3 : 構造化された配列の場合

>>> dtype = [('index', int), ('x', float), ('y', float)]
>>> v = [(0, 5.8, 3.6),
         (1, 7.5, 2.9),
         (2, 2.7, 9.7),
         (3, 5.8, 2.4),
         (4, 1.3, 9.7)]
>>> a = np.array(v, dtype=dtype)
>>> a.sort(order='y')
>>> a
array([(3, 5.8, 2.4),
       (1, 7.5, 2.9),
       (0, 5.8, 3.6),
       (2, 2.7, 9.7),
      (4, 1.3, 9.7)],
    dtype=[('index', '<i8'), ('x', '<f8'), ('y', '<f8')])
上の例では、'index','x','y'の3つの数値が1組になったものを、'y'の値で並べ替えています。
優先順位'x','y'の順に並べ替えたいなら、下記のように書きます。
>>> a.sort(order=['x','y'])
>>> a
array([(4, 1.3, 9.7),
       (2, 2.7, 9.7),
       (3, 5.8, 2.4),
       (0, 5.8, 3.6),
       (1, 7.5, 2.9)],
    dtype=[('index', '<i8'), ('x', '<f8'), ('y', '<f8')])
関連項目
関数ndarray.argsortの使い方の例
関数ndarray.searchsortedの使い方の例

関数ndarray.argmaxと関数ndarray.argminの使い方の例

関数の機能:最大値、最小値のインデックス値を返却

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

>>> a = np.array([2.3, 6.5, 3.6])
>>> a.argmax()
1
>>> a.argmin()
0
1次元の配列の場合は、引数で軸を指定する必要ありません。

例2 : 2次元の配列の場合(軸の指定あり)

>>> a = np.array([[5, 3, 7],
	          [2, 6, 1]])
>>> a.argmax(axis=0)
array([0, 1, 0])
>>> a.argmax(axis=1)
array([2, 1])
>>> a.argmin(axis=0)
array([1, 0, 1])
>>> a.argmin(axis=1)
array([1, 2])
キーワード引数axisを指定した例です。axis=0なら縦方向、axis=1なら横方向の、最大値・最小値のインデックスが返却されます。

例3 : 2次元の配列の場合(軸の指定なし)

>>> a = np.array([[5, 3, 7],
	          [2, 6, 1]])
>>> a.argmax()
2
>>> a.argmin()
5
軸を指定しない場合は、全ての要素の最大値のインデックスが返却されます。但し、下記のように配列を平坦化した状態でのインデックス値となります。

array([[5, 3, 7],
       [2, 6, 1]])
        ↓
array([5, 3, 7, 2, 6, 1])
関連項目
関数ndarray.maxの使い方の例
関数ndarray.minの使い方の例

関数ndarray.stdの使い方の例

関数の機能:配列の標準偏差を返却

例1 : 母集団の標準偏差を求める場合

>>> a = np.array([3.2, 3.6, 2.7, 3.4])
>>> a.std()
0.3344772040064912

例2 : 標本の標準偏差を求める場合

>>> a.std(ddof=1)
0.38622100754188216
標本標準偏差を求める場合には、キーワード引数ddofに1を与えます。
関連項目
関数ndarray.sumの使い方の例
関数ndarray.meanの使い方の例
関数ndarray.varの使い方の例

関数ndarray.sumの使い方の例

関数の機能:配列の合計値を返却

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

>>> a = np.array([4.6, 1.8, 9.6])
>>> a.sum()
16.0

例2 : 2次元の配列の場合(軸の指定なし)

>>> a = np.array([[4.6, 1.8],
	          [3.6, 7.1]])
>>> a.sum()
17.1
軸を指定しない場合は、全ての要素の合計値が返却されます。

例3 : 2次元の配列の場合(軸を指定)

>>> a = np.array([[4.6, 1.8],
	          [3.6, 7.1]])
array([8.2, 8.9])
>>> a.sum(axis=1)
array([ 6.4, 10.7])

例4:bool型配列の場合

>>> a = np.array([True, False, True])
>>> a.sum()
2
bool型配列の場合は、Trueが1、Falseが0と見做して合計値が計算されます。
関連項目
関数ndarray.meanの使い方の例
関数ndarray.stdの使い方の例
関数ndarray.varの使い方の例
関数ndarray.cumsumと関数ndarray.cumprodの使い方の例
関数ndarray.prodの使い方の例
関数ndarray.traceの使い方の例

関数ndarray.meanの使い方の例

関数の機能:配列の算術平均値を返却

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

a = np.array([6.5, 1.2, -0.5])
>>> a.mean()
2.4

例2 : 2次元の配列の場合(軸の指定なし)

>>> a = np.array([[ 6.5, 1.2],
	          [-0.5, 5.0]])
>>> a.mean()
3.05
軸を指定しない場合は、全ての要素の算術平均値が返却されます。

例3 : 2次元の配列の場合(軸を指定)

>>> a = np.array([[ 6.5, 1.2],
	          [-0.5, 5.0]])
>>> a.mean(axis=0)
array([3. , 3.1])
>>> a.mean(axis=1)
array([3.85, 2.25])

例4:bool型配列の場合

>>> a = np.array([True, True, False])
>>> a.mean()
0.6666666666666666
bool型配列の場合は、Trueが1、Falseが0と見做して算術平均値が計算されます。
関連項目
関数ndarray.maxの使い方の例
関数ndarray.minの使い方の例
関数ndarray.sumの使い方の例
関数ndarray.stdの使い方の例
関数ndarray.varの使い方の例

関数ndarray.minの使い方の例

関数の機能:配列の最小値を返却

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

>>> a = np.array([5.3, 2.5, 4.8])
>>> a.min()
2.5

例2 : 2次元の配列の場合(軸の指定なし)

>>> a = np.array([[5.3, 2.5],
	          [4.8, 7.1]])
>>> a.min()
2.5
軸を指定しない場合は、全ての要素の最小値が返却されます。

例3 : 2次元の配列の場合(軸を指定)

>>> a = np.array([[5.3, 2.5],
	          [4.8, 7.1]])
>>> a.min(axis=0)
array([4.8, 2.5])
>>> a.min(axis=1)
array([2.5, 4.8])

例4:bool型配列の場合

>>> a = np.array([True, True, True, True])
>>> a.min()
True
>>> a = np.array([True, False, True, True])
>>> a.min()
False
bool型配列の場合は、TrueがFalseより大きいと値と見做して最大値(Falseが1つでも存在すればFalse、そうでなければTrue)が返却されます。
関連項目
関数ndarray.maxの使い方の例
関数ndarray.meanの使い方の例
関数ndarray.sumの使い方の例
関数ndarray.ptpの使い方の例
関数ndarray.argmaxと関数ndarray.argminの使い方の例

関数ndarray.maxの使い方の例

関数の機能:配列の最大値を返却

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

>>> a = np.array([2.3, 1.2, 3.5])
>>> a.max()
3.5

例2 : 2次元の配列の場合(軸の指定なし)

>>> a = np.array([[2.5, 4.2],
	          [1.2, 2.6]])
>>> a.max()
4.2
軸を指定しない場合は、全ての要素の最大値が返却されます。

例3 : 2次元の配列の場合(軸を指定)

>>> a = np.array([[2.5, 4.2],
	          [1.2, 2.6]])
>>> a.max(axis=0)
array([2.5, 4.2])
>>> a.max(axis=1)
array([4.2, 2.6])

例4:bool型配列の場合

>>> a = np.array([False, False, False, False])
>>> a.max()
False
>>> a = np.array([False, True, False, False])
>>> a.max()
True
bool型配列の場合は、TrueがFalseより大きいと値と見做して最大値(Trueが1つでも存在すればTrue、そうでなければFalse)が返却されます。
関連項目
関数ndarray.minの使い方の例
関数ndarray.meanの使い方の例
関数ndarray.sumの使い方の例
関数ndarray.ptpの使い方の例
関数ndarray.argmaxと関数ndarray.argminの使い方の例