山岸  英樹

山岸 英樹

1636554120

PythonのNumpy Dot()関数とは

Numpy.dotは、行列計算のための堅牢な関数です。2つの行列の内積を計算するには、np.dot関数を使用します。その関数について詳しく見ていきましょう。

np.dot関数

Numpy dot()は、指定された2つのベクトル(リスト)の数学ドットを返すために使用される数学関数です。np.dot()関数は、3つの引数を受け入れ、指定された2つのベクトルの内積を返します。

ベクトルは、多次元だけでなく一次元でもかまいません。どちらの場合も、数学的内積の規則に従います。

1D配列の場合、これはベクトルの内積です。N次元配列の場合、それは最後の軸上積和であるとの二最後の軸B

 

構文

numpy.dot(vector_a, vector_b, out = None)

パラメーター

dot()関数は、主に次の3つのパラメーターを取ります。

  1. vector_a :これは最初のベクトルです。
  2. vector_b:これは2番目のベクトルです。
  3. out:引数の生成。これは、使用されない限り返されるのと同じ種類である必要があります。具体的には、適切な形式であり、C連続である必要があり、そのdtypeはdot(a、b)に対して返される形式である必要があります。それがパフォーマンスの特徴です。したがって、これらの条件が満たされない場合、柔軟にしようとする代わりに、例外が作成されます。

戻り値

numpy.dot()メソッドは、指定された2つのベクトルの内積を返します。ベクトルのいずれかまたは両方が複素数の場合、その複素共役を使用して内積が計算されます。

 

与えられたベクトルが一次元の場合のドットを計算します

次のコードを参照してください。

# Program to show working of numpy.dot
# When both the vectors are 1D

# Importing numpy
import numpy as np

# We will create an 1D array
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([2, 3, 4, 5])
# Printing the array
print("The first array is: ", arr1)
print("The second array is:  ", arr2)
# Shape of the array
print("Shape of the first array is : ", np.shape(arr1))
print("Shape of the second array is : ", np.shape(arr2))

# Printing dot product of the arr1.arr2
out = np.dot(arr1, arr2)
print("Dot product of arr1 and arr2")
print(out)

# When both are complex
a = 6+1j
b = 4+3j
out1 = np.dot(a, b)
print("Dot product of a and b")
print(out1)

出力

The first array is:  [1 2 3 4]
The second array is:   [2 3 4 5]
Shape of the first array is :  (4,)
Shape of the second array is :  (4,)
Dot product of arr1 and arr2
40
Dot product of a and b
(21+22j)

説明

このプログラムでは、最初のケースで、2つの1D配列を初期化し、次に配列とその形状の両方を印刷しました。その後、numpy.dot()を呼び出して、配列の内積を計算しました。

答え40が得られたことがわかります。内積の規則によれば、このようになりました。

(1 * 2 + 2 * 3 + 3 * 4 + 4 * 5)= 40。

また、2番目のケースでは、2つの複素方程式を宣言しました。次に、それらの内積を印刷しました。答えは(21 + 22j)であり、次のように計算されていることがわかります。

6 *(4 + 3j)+ 1j *(4-3j)

= 24 + 18j + 4j-3

= 21 + 22j

ベクトルが多次元である場合、内積を計算します

次のコードを参照してください。

# Program to show the working of numpy.dot
# When both the vectors are 2D

# Importing numpy
import numpy as np

# We will create an 1D array
arr1 = np.array([[1, 2], [5, 6]])
arr2 = np.array([[2, 3], [2, 4]])
# Printing the array
print("The first array is:\n ", arr1)
print("\nThe second array is: \n ", arr2)
# Shape of the array
print("Shape of the first array is : ", np.shape(arr1))
print("Shape of the second array is : ", np.shape(arr2))

# Printing dot product of the arr1.arr2
out = np.dot(arr1, arr2)
print("Dot product of arr1 and arr2")
print(out)

出力

The first array is:
  [[1 2]
 [5 6]]

The second array is:
  [[2 3]
 [2 4]]
Shape of the first array is :  (2, 2)
Shape of the second array is :  (2, 2)
Dot product of arr1 and arr2
[[ 6 11]
 [22 39]]

説明

このプログラムでは、最初のケースで、2つの2D配列を初期化し、次に配列とその形状の両方を印刷しました。その後、numpy.dot()を呼び出して、配列の内積を計算しました。

答えは2D配列にあることがわかります。内積のルールに従って、私たちは答えを得ました。

Numpy dot()メソッドについては以上です。

リンク: https://appdividend.com/2020/08/05/numpy-dot-example-np-dot-in-python/

#python ·

What is GEEK

Buddha Community

PythonのNumpy Dot()関数とは
山岸  英樹

山岸 英樹

1636554120

PythonのNumpy Dot()関数とは

Numpy.dotは、行列計算のための堅牢な関数です。2つの行列の内積を計算するには、np.dot関数を使用します。その関数について詳しく見ていきましょう。

np.dot関数

Numpy dot()は、指定された2つのベクトル(リスト)の数学ドットを返すために使用される数学関数です。np.dot()関数は、3つの引数を受け入れ、指定された2つのベクトルの内積を返します。

ベクトルは、多次元だけでなく一次元でもかまいません。どちらの場合も、数学的内積の規則に従います。

1D配列の場合、これはベクトルの内積です。N次元配列の場合、それは最後の軸上積和であるとの二最後の軸B

 

構文

numpy.dot(vector_a, vector_b, out = None)

パラメーター

dot()関数は、主に次の3つのパラメーターを取ります。

  1. vector_a :これは最初のベクトルです。
  2. vector_b:これは2番目のベクトルです。
  3. out:引数の生成。これは、使用されない限り返されるのと同じ種類である必要があります。具体的には、適切な形式であり、C連続である必要があり、そのdtypeはdot(a、b)に対して返される形式である必要があります。それがパフォーマンスの特徴です。したがって、これらの条件が満たされない場合、柔軟にしようとする代わりに、例外が作成されます。

戻り値

numpy.dot()メソッドは、指定された2つのベクトルの内積を返します。ベクトルのいずれかまたは両方が複素数の場合、その複素共役を使用して内積が計算されます。

 

与えられたベクトルが一次元の場合のドットを計算します

次のコードを参照してください。

# Program to show working of numpy.dot
# When both the vectors are 1D

# Importing numpy
import numpy as np

# We will create an 1D array
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([2, 3, 4, 5])
# Printing the array
print("The first array is: ", arr1)
print("The second array is:  ", arr2)
# Shape of the array
print("Shape of the first array is : ", np.shape(arr1))
print("Shape of the second array is : ", np.shape(arr2))

# Printing dot product of the arr1.arr2
out = np.dot(arr1, arr2)
print("Dot product of arr1 and arr2")
print(out)

# When both are complex
a = 6+1j
b = 4+3j
out1 = np.dot(a, b)
print("Dot product of a and b")
print(out1)

出力

The first array is:  [1 2 3 4]
The second array is:   [2 3 4 5]
Shape of the first array is :  (4,)
Shape of the second array is :  (4,)
Dot product of arr1 and arr2
40
Dot product of a and b
(21+22j)

説明

このプログラムでは、最初のケースで、2つの1D配列を初期化し、次に配列とその形状の両方を印刷しました。その後、numpy.dot()を呼び出して、配列の内積を計算しました。

答え40が得られたことがわかります。内積の規則によれば、このようになりました。

(1 * 2 + 2 * 3 + 3 * 4 + 4 * 5)= 40。

また、2番目のケースでは、2つの複素方程式を宣言しました。次に、それらの内積を印刷しました。答えは(21 + 22j)であり、次のように計算されていることがわかります。

6 *(4 + 3j)+ 1j *(4-3j)

= 24 + 18j + 4j-3

= 21 + 22j

ベクトルが多次元である場合、内積を計算します

次のコードを参照してください。

# Program to show the working of numpy.dot
# When both the vectors are 2D

# Importing numpy
import numpy as np

# We will create an 1D array
arr1 = np.array([[1, 2], [5, 6]])
arr2 = np.array([[2, 3], [2, 4]])
# Printing the array
print("The first array is:\n ", arr1)
print("\nThe second array is: \n ", arr2)
# Shape of the array
print("Shape of the first array is : ", np.shape(arr1))
print("Shape of the second array is : ", np.shape(arr2))

# Printing dot product of the arr1.arr2
out = np.dot(arr1, arr2)
print("Dot product of arr1 and arr2")
print(out)

出力

The first array is:
  [[1 2]
 [5 6]]

The second array is:
  [[2 3]
 [2 4]]
Shape of the first array is :  (2, 2)
Shape of the second array is :  (2, 2)
Dot product of arr1 and arr2
[[ 6 11]
 [22 39]]

説明

このプログラムでは、最初のケースで、2つの2D配列を初期化し、次に配列とその形状の両方を印刷しました。その後、numpy.dot()を呼び出して、配列の内積を計算しました。

答えは2D配列にあることがわかります。内積のルールに従って、私たちは答えを得ました。

Numpy dot()メソッドについては以上です。

リンク: https://appdividend.com/2020/08/05/numpy-dot-example-np-dot-in-python/

#python ·

PythonのNumpy Correlate()メソッド

Numpyのcorrelate()メソッドは、2つの1次元ベクトル間の相互相関を見つけるために使用されます。単一処理テキストで一般的に定義されている相関を計算するcorrelate()関数は、次のように与えられます。c_{v1v2} [k] = sum_n v1 [n + k] * conj(v2 [n])v1およびv2シーケンスは必要に応じてゼロが埋め込まれ、接続詞が共役になります。

簡単に言うと、Python numpy.correlate(v1、v2、mode)は、配列v2の逆で配列v1の畳み込みを実行し、指定された3つのモードのいずれかを使用して結果をクリップします。

構文

numpy.correlate (v1, v2, mode,old_behaviour)

パラメーター

reacte()関数は、最大4つのパラメーターを取ります。

 v1:array_like、最初の1次元入力配列。(M、)の形をしているとしましょう

 

 v2: array_like、2番目の1次元入力配列。(N、)の形をしているとしましょう

モード:{'valid'、 'same'、 'full'}、オプション

 

これはオプションのパラメーターであり、以下で説明する3つの異なるモードがあります。

  1. ' valid':デフォルトのモードです。モード 'valid'は、長さmax(M、N)– min(M、N)+1の出力を返します。畳み込み積は、v1とv2が完全にオーバーラップしている場合にのみ与えられます。信号境界外の値は影響しません。
  2. ' same':モード ' same'は、長さmin(M、N)の出力を返します。境界効果はまだ表示されます。
  3. ' full':これは、(M + N-1)の出力形状で、オーバーラップの各ポイントでの畳み込みを返します。畳み込みの終点では、ベクトルv1とv2が完全に重なっておらず、境界効果が見られる場合があります。

' old_behavior' :bool、これはブールパラメータであり、trueまたはfalseのいずれかを取ることができます。

old_behavoiurが数値からtrueをとる場合(correlate(v1、v2)== correlate(v2、v1)、および共役は複雑な配列には採用されません)。

それ以外の場合、old_behavoiurが数値からfalseを取得する場合は、従来の信号処理定義を使用します。

戻り値

reacte()メソッドは、v1とv2の1次元ベクトルの相互相関を返します。

プログラミング例

numpy.correlate()メソッドの動作を示すプログラム。

# importing the numpy module
import numpy as np

# Making fist 1-D vector v1
v1 = np.array([1, 3, 5])
print("First vector sequence is: ", v1)

# Making second 1-D vector v2
v2 = np.array([0.5, 1.5, 2.5])
print("Second vector sequence is: ", v2)

print("\nprinting cross-correlation result between v1 and v2 using default 'valid' mode:")
print(np.correlate(v1, v2))

print("\nprinting cross-correlation result between v1 and v2 using 'full' mode:")
print(np.correlate(v1, v2, mode='full'))

# printing cross-correlation result between v1 and v2 using 'same' mode
print("\nprinting cross-correlation result between v1 and v2 using 'same' mode:")
print(np.correlate(v1, v2, mode='same'))

出力

First vector sequence is:  [1 3 5]
Second vector sequence is:  [0.5 1.5 2.5]

printing cross-correlation result between v1 and v2 using default 'valid' mode:
[17.5]

printing cross-correlation result between v1 and v2 using 'full' mode:
[ 2.5  9.  17.5  9.   2.5]

printing cross-correlation result between v1 and v2 using 'same' mode:
[ 9.  17.5  9. ]

説明

プログラムでは、v1v2という名前の2つの1次元入力ベクトルを取得しました。次に、3つの異なるモードのそれぞれを使用して相互相関値を表示することにより、出力を表示しました。

2つのシーケンスの順序を変更したときに、np.correlate()メソッドを使用して時間反転した複素共役の結果を取得する方法を理解するためのプログラム:

次のコードを参照してください。

import numpy as np

# Making fist 1-D vector v1
v1 = np.array([1, 3, 5])
print("First vector sequence is: ", v1)
# Making second 1-D vector v2
v2 = np.array([0.5, 1.5, 2.5])
print("Second vector sequence is: ", v2)

print("\nprinting cross-correlation result between v1 and v2 using 'full' mode:")
print(np.correlate(v1, v2, mode='full'))

# Changing order of sequence
# printing cross-correlation result between v2 and v1 using 'full' mode
print("\nAfter reversing the order of sequence and still using 'full' mode:")
print(np.correlate(v2, v1, mode='full'))

# printing cross-correlation result between v1 and v2 using 'same' mode
print("\nprinting cross-correlation result between v1 and v2 using 'same' mode:")

print(np.correlate(v1, v2, mode='same'))

# Changing order of sequence
# printing cross-correlation result between v2 and v1 using 'same' mode
print("\nAfter reversing the order of sequence and still using 'same' mode:")
print(np.correlate(v2, v1, mode='same'))

出力

First vector sequence is:  [1 3 5]
Second vector sequence is:  [0.5 1.5 2.5]

printing cross-correlation result between v1 and v2 using default 'valid' mode:
[17.5]

printing cross-correlation result between v1 and v2 using 'full' mode:
[ 2.5  9.  17.5  9.   2.5]

printing cross-correlation result between v1 and v2 using 'same' mode:
[ 9.  17.5  9. ]

説明

結果を元のシーケンスで出力し、シーケンスの順序を変更して同じものを出力した後、np.correlate()メソッドを使用して時間反転した複素共役の結果を取得できることを確認できます。

結果は、次の関数を使用して表すことができます。

c_ {v2v1} [k] = c ^ {*} {v1v2} [-k]

結論

2つの1次元シーケンスの相互相関。相関()関数は、信号処理テキストで一般的に定義されている相関を計算します。

最後に、PythonチュートリアルのNumpycorrelate()メソッドは終了しました。

リンク: https://appdividend.com/2020/06/03/numpy-correlate-method-in-python/

#python 

山本  洋介

山本 洋介

1638691200

PythonのNumpy Isfinite()関数

isfinite()関数はnumpyで定義され、import numpy asnpとしてインポートされます。私たちは、 多次元配列を作成し、numpyのの助けを借りて、他の数学的な統計情報を引き出すことができます。

Numpy infinite()関数は、要素が有限であるかどうかをテストするために使用されます。配列を渡して、配列に存在する要素が有限クラスに属しているかどうかを確認することもできます。有限でない場合、メソッドはFalseを返します。それ以外の場合はTrueを返します。ブール値を返します。

Numpy isfinite()

np.isfinite()関数は、有限かどうか(無限大ではないか、数値ではないか)を要素ごとにテストし、結果をブール配列として返します。

構文

numpy.isfinite(array or the scalar value, out(output array))

パラメーター

isfinite()関数は2つのパラメーターを取り、そのうち1つのパラメーターはオプションで、もう1つは必須です。

 

最初のパラメーターは、入力配列またはそれが有限であるかどうかを確認する入力です。

2つ目は、オプションのn次元配列です。結果とともに配置されるのは出力配列です。

 

戻り値

np.isfinite()関数はブール配列を返します。これは、配列を渡すと結果になり、スカラー値を渡すとブール値TrueまたはFalseになります。

Pythonのisfinite()メソッドのサンプルプログラム

 Pythonでのisfinite()関数の動作を示すプログラムを作成します。

# app.py

import numpy as np

# Scalar Values
print("Is finite: - : ", np.isfinite(933), "\n")
print("Is finite: - : ", np.isfinite(444), "\n")

# checking for infinity value
print("Is finite: - ", np.isfinite(np.inf), "\n")
print("Is finite: - ", np.isfinite(np.NINF), "\n")

出力

python3 app.py
Is finite: - :  True

Is finite: - :  True

Is finite: -  False

Is finite: -  False

この例では、関数isfinite()で2つのスカラー値をバイパスすると、有限値を表すためTrueが得られますが、無限の値が渡されるとFalseが得られます。 

数学モジュールの値に対してisfinite()関数を使用するプログラムを作成します。

次のコードを参照してください。

# app.py

import math as m

# For finite values
print("Is finite:- ", m.isfinite(999))
print("Is finite:- ", m.isfinite(-999))

# For not a number and +ve infinity and -ve infinity values
print("Is finite:- ", m.isfinite(float("nan")))
print("Is finite:- ", m.isfinite(float("inf")))
print("Is finite:- ", m.isfinite(float("-inf")))

出力

python3 app.py
Is finite:-  True
Is finite:-  True
Is finite:-  False
Is finite:-  False
Is finite:-  False

この例では、数学モジュールを使用して、関数に渡された値に応じてTrue値とFalse値の異なるセットを取得していることがわかります。

numpy isfinite()でnumpy arange()を使用する

Numpy arange ()関数は、指定された範囲内の等間隔の値を含むndarrayオブジェクトを返します。

次のコードを参照してください。

# app.py

import numpy as np

b = np.arange(10).reshape(2, 5)
print("\n", b)
print("\nIs Finite : \n", np.isfinite(b))

b = [[1j],
     [np.inf]]
print("\nIs Finite : \n", np.isfinite(b))

出力

python3 app.py

 [[0 1 2 3 4]
 [5 6 7 8 9]]

Is Finite :
 [[ True  True  True  True  True]
 [ True  True  True  True  True]]

Is Finite :
 [[ True]
 [False]]

その他の例

# app.py

import numpy as np

print(np.isfinite(1))

print(np.isfinite(0))

print(np.isfinite(np.nan))

print(np.isfinite(np.inf))

print(np.isfinite(np.NINF))

出力

python3 app.py
True
True
False
False
False

数ではなく、正の無限大、および負の無限大は非有限と見なされます。

Numpyは、算術演算のバイナリ浮動小数点にIEEE標準(IEEE 754)を使用しています。これは、NotaNumberが無限大と同等ではないことを意味します。

また、正の無限大は負の無限大と同等ではありません。しかし、無限大は正の無限大と同じです。

xがスカラー入力の場合、または1番目と2番目の引数の形状が異なる場合に2番目の引数も指定されると、エラーが発生します

最後に、Pythonの例のNumpy isfinite()関数は終了しました。

リンク: https://appdividend.com/2020/04/30/numpy-isfinite-function-in-python-example/

#python 

宇野  和也

宇野 和也

1637936761

PythonのNumpy Where()関数とは

numpy where()メソッドを使用すると、条件を満たすNumpy配列ndarrayの要素を置き換えたり、指定された処理を実行したりできます。このチュートリアルでは、numpyインストールする必要があります。numpyのバージョンを確認することもできます。

np.where

np.where()メソッドは、条件に応じてxまたはyから選択された要素を返します。条件に基づいて要素を選択する場合は、np where()関数を使用します。where()関数は、引数として条件式を取り、新しいnumpy配列を返します。

構文

numpy.where(condition[, x, y])

パラメーター

condition:ブール値のNumpy配列を返す条件式。
x、y: 配列(オプション、つまり、両方が渡されるか渡されないかのいずれか)

  • すべての引数–>条件、xおよびyがnumpy.where()メソッドで指定されている場合、条件によって生成されたブール配列の値に応じて、xおよびyから選択された要素が返されます。3つの配列はすべて同じサイズである必要があります。
  • x&y引数が渡されず、条件引数のみが渡される場合、条件によって返されるbool numpy配列でTrueである要素のインデックスを含む配列のタプル(各軸に1つ)が返されます。

これは、条件が配列内の一部の要素に対してTrue返す場合、新しい配列はxから項目を選択するということです。

 

それ以外の場合、Falseの場合、yからのアイテムが取得されます。

これにより、最終的な出力配列は、条件= Trueの場合は常にxからのアイテム、条件= Falseの場合は常にyからのアイテムを含む配列になります。

 

ここ注意すべきことの1つは、xとyはオプションですが、xを指定する場合は、yも指定する必要があることに注意してくださいこの場合、出力配列の形状は入力配列と同じである必要があるため、これを行う必要があります。

戻り値

where()メソッドは、条件に基づいてフィルタリングした後、新しいnumpy配列を返します。これはブール値のnumpyのような配列です。

import numpy as np

data = np.where([True, False, True], [11, 21, 46], [19, 29, 18])
print(data)

出力

[11 29 46]

Numpy.where()はbool配列を反復処理し、Trueごとに対応する要素配列xを生成し、Falseごとに配列yから対応する要素を生成します。したがって、条件Trueの場合はxからアイテムの配列を返し、それ以外の場合はyからの要素を返します。

条件は、 numpyのようなブール配列である配列([真の、真の、真]])の値をとることができます。(デフォルトでは、NumPyは数値のみをサポートしますが、ブール値にキャストすることもできます)。

別の例を見てみましょう。条件がarray([[True、True、False]])で、配列がa = ndarray([[1、2、3]])の場合、配列(a [ :、condition])、配列ndarray([[1 2]])を取得します。

要素をnumpy.where()に置き換える

私たちは、使用されます()np.random.randn 2次元配列を生成する機能を、我々は唯一の出力は、正の要素になります。コードを参照してください。

import numpy as np

# Random initialization of (2D array)
arr = np.random.randn(2, 3)
print(arr)

# result will be all elements of a whenever the condition holds true (i.e only positive elements)
# Otherwise, set it as 0
result = np.where(arr > 0, arr, 0)

print(result)

出力

[[-1.49929393  0.68739761 -0.59852165]
 [ 0.59212319  1.81549763 -0.32777714]]
[[0.         0.68739761 0.        ]
 [0.59212319 1.81549763 0.        ]]

出力から、これらの負の値の要素が削除され、代わりに0が負の値に置き換えられていることがわかります。

複数の条件でnpwhere()を使用する

各条件式が()および&または|で囲まれている場合 が使用される場合、処理は複数の条件に適用されます。

import numpy as np

# Random initialization of a (2D array)
arr = np.random.randn(2, 3)
print(arr)

result = np.where((arr > 0.1) & (arr < 1) | (arr == 0.5), -1, 19)

print(result)

出力

[[-0.51877986  2.29435425  0.76549418]
 [-0.94666634  1.74349695 -0.82869105]]
[[19 19 -1]
 [19 19 19]]

出力から、and演算子およびor演算子を使用して3つの条件を適用したことがわかります。配列要素の値が0.1〜0.99または0.5の場合、-1を返します。それ以外の場合は19を返します。

複数の条件の場合でも、ブール値ndarrayを取得するためにnp.where()を使用する必要はありません。

条件を満たす要素を処理する

元のndarrayの代わりに、要素が条件を満たす場合に要素に対して実行する操作を指定することもできます。

import numpy as np

# Random initialization of a (2D array)
arr = np.random.randn(2, 3)
print(arr)

result = np.where(arr < 1, arr * 10, 19)
print('\n')
print('The array after performing the operation')
print(result)

出力

[[ 0.4934594  -0.43502907 -0.01968412]
 [-0.52953907  0.41415299 -0.29620816]]


The array after performing the operation
[[ 4.93459402 -4.35029075 -0.19684123]
 [-5.2953907   4.14152986 -2.96208157]]

アイテムが10未満の場合は、すべての要素に10が乗算されることがわかります。それ以外の場合は、その場所に19が返されます。

numpy.where()でブロードキャスト

すべての条件、x、およびy配列を提供すると、numpyはそれらを一緒にブロードキャストします。 

次のコードを参照してください。

import numpy as np

arr = np.arange(6).reshape(2, 3)

brr = np.arange(3).reshape(1, 3)

print(arr)
print(brr)

# Broadcasts (arr < 2, arr, and brr * 5)
# of shape (2, 3), (2, 3) and (1, 3)
c = np.where(arr < 2, arr, brr * 5)
print(c)

出力

[[0 1 2]
 [3 4 5]]
[[0 1 2]]
After broadcasting:
[[ 0  1 10]
 [ 0  5 10]]

最後に、Numpy where()関数の例は終わりです。

リンク: https://appdividend.com/2020/06/04/numpy-where-example-np-where-function-in-python/

#python 

野村  陽一

野村 陽一

1638477900

PythonのNumpy Bincount()メソッド

numpyのbincount()メソッドの使用法は何ですか?正の(+ ve)整数の配列では、numpy.bincount()メソッドが各要素の出現をカウントします。

np.bincount

np.bincount()メソッドはPythonで使用され、numpy配列内に提供される各要素の頻度を取得します。numpy bincount()メソッドは引数としてarr_name、weights、 および minlength を取り、整数のndarrayを返します。

非負のintの配列内の各値の出現回数をカウントするには、numpy.bincount()関数を使用します。

配列内のすべての要素は整数データ型である必要があり、また、それらは非負である必要があります。それ以外の場合は、TypeErrorが発生します。要素の数は、そのインデックスとして周波数配列/ビンに格納されます。

 

したがって、各ビン値はそのインデックスの出現に対応すると結論付けることができます。したがって、それに応じてビンサイズを設定できます。ビンのサイズは常に、指定された配列の最大数+1に等しくなります。

例:配列が[1,6,6,4,2,8,5]の場合、8が配列の最大要素であるため、ビンのサイズは9になります。重み配列が提供されている場合、入力配列はそれによって重み付けされます。

 

構文

numpy.bincount(arr_name, weights = None, minlength=0)

パラメーター

bincount()関数は、最大3つの主要なパラメーターを取ります。

  1. arr_name これは周波数要素がカウントされる入力配列です。
  2. 重み 入力配列と同じ形状の追加の配列。
  3. minlength 出力配列のビンの最小数を指定します。

戻り値

bincount()関数は、intのndarrayを返します。

出力配列は、入力配列内のbinのインデックス値のいくつかのオカレンスで構成されます。

出力配列のサイズは、入力配列内に存在する最大要素よりも+1大きくなります。

プログラミング例

numpy.bincount()の動作を示すプログラム

# importing the numpy module
import numpy as np

# Input array of non-negative integers
inp_arr = np.array([1, 2, 5, 6, 2, 1, 8, 8, 8])

x = np.bincount(inp_arr)
print("Output of bincount is: ", x)

# printing the size of output bin
print("\nSize of output bin: ", len(x))

出力

Output of bincount is:  [0 2 2 0 0 1 1 0 3]

Size of output bin:  9

説明

プログラムbincount1.pyでは、inp_arrという名前のnumpy配列を取得し、頻度がカウントされる配列内に複数の非負の要素を格納しました。

次に、np.bincount()メソッド内のパラメーターとして完全な配列を渡し、その戻り値をxという名前の変数内に格納しました。

その後、xを使用して新しく取得したbincount配列の要素を表示することにより、出力を出力しました。結論として、np.bincount()では、各bin値はそのインデックスの出現に対応しています。

理解を深めるには、以下の画像を参照してください。

Pythonのnpbincount

追加の重み配列がパラメーターとして指定された場合のnp.bincount()メソッドの動作を理解するためのプログラム。

次のコードを参照してください。

# importing the numpy module
import numpy as np

# Input array of non-negative integers
inp_arr = np.array([1, 2, 5, 6, 2, 1, 8, 8, 8])

# Weighted Array
weights = np.array([1, 1, 1, 0.5, 1, 1, 1, 1, 2])
output_bin = np.bincount(inp_arr, weights)
print("Output of bincount is: ", output_bin)

# printing the size of output bin
print("\nSize of output bin: ", len(output_bin))

出力

Output of bincount is:  [0 2 2 0 0 1 1 0 3]

Size of output bin:  9

説明

bincount2.pyという名前のこのコード例では、weightパラメーターを使用して要素ごとの加算を実行できます。インデックスに対応する要素が要素ごとに追加されます。したがって、異なるインデックスの要素は次のように与えられます。

インデックス0の対応する要素= 0、インデックス1の 対応する要素= 0、 インデックス1の 対応する要素= 1 + 1 = 2、インデックス2の対応する要素= 1 + 1 = 2、インデックス3およびインデックス4の 対応する要素= 0、インデックス5の対応する要素= 1、インデックス6の対応する要素= 0.5、で。

インデックス7の対応する要素= 0、インデックス8で、対応する要素= 1 + 1 + 2 = 4。 

理解を深めるには、以下の画像を参照してください。

Numpy bincount()の例

最後に、np.bincount()関数については以上です。

リンク: https://appdividend.com/2020/05/07/numpy-bincount-example-np-bincount-in-python/

#python