宇野  和也

宇野 和也

1636142820

PythonのNumpy Linalg Slogdet()関数

Numpy linalg slogdet()関数は、配列の行列式の符号と(自然)対数を計算するために使用されます。ここで問題となるのは、このslogdet()がいつ必要になるかということです。

ほとんどのリストのインデックスが少なすぎるか少なすぎる場合、det()の呼び出しがオーバーフローまたはアンダーフローする可能性があります。このプロセス(slogdet())は、ショートカット自体ではなくショートカットの対数を含むため、このような問題よりもはるかに堅牢です。

構文

numpy.linalg.slogdet(array)

パラメーター

slogdet()関数は単一のパラメーターを取ります。

  1. 配列:これは2D配列であり、正方形である必要があります。 

戻り値

slogdet()関数は2つの値を返します。

 

サイン: 

行列式の符号を表す数値。実数行列の場合、これは1、0、または-1です。複素行列の場合、これは絶対値が1の複素数(つまり、単位円上にある)、または0の複素数です。

logdet:

これは、行列式の絶対値の自然対数です。

 

行列式がゼロの場合、 `sign`は0になり、` logdet`

-Inf。すべての場合において、行列式は「sign * np.exp(logdet)」と同じです。

プログラミング例

1つの2D配列の行列式を計算するプログラム

# Program to calculate determinant of one 2D array
import numpy as np

# creating a 2D array
arr = np.array([[3, 4, 5], [7, 8, 6], [10, 11, 2]])

# printing the array
print(arr)

# calculating the slogdet
(sign, logdet) = np.linalg.slogdet(arr)

# Printing those values
print("Sign is : ", sign)
print("Logdet is :", logdet)

出力

[[ 3  4  5]
 [ 7  8  6]
 [10 11  2]]
Sign is :  1.0
Logdet is : 2.944438979166441

説明

このプログラムでは、サイズ3×3の正方行列を作成し、それを印刷しました。
 

次に、slogdet()を呼び出して、配列の符号とlogdetを取得しました。
 

サイン1を取得したことがわかります。

行列のスタックの対数行列式を計算するプログラム。

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

# Computing log-determinants for a stack of matrices
import numpy as np

# creating the stack matrices
arr = np.array([[[2, 1], [3, 4]], [[3, 4], [5, 6]], [[7, 8], [9, 10]]])
# printing the values
print("The array is:\n", arr)
print("Shape of the array is: ", arr.shape)

# Calculating the slogdet
(sign, logdet) = np.linalg.slogdet(arr)

# Printing those values
print("Sign is : ", sign)
print("Logdet is :", logdet)

出力

The array is:
 [[[ 2  1]
  [ 3  4]]

 [[ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]]]
Shape of the array is:  (3, 2, 2)
Sign is :  [ 1. -1. -1.]
Logdet is : [1.60943791 0.69314718 0.69314718]

説明

このプログラムでは、サイズ3×2の正方行列を作成し、それを印刷しました。

次に、slogdet()関数を呼び出して、配列の符号とlogdetを取得しました。

記号[1.-1。-1]。

リンク: https://appdividend.com/2020/11/09/numpy-linalg-slogdet-function-in-python-with-example/

#python 

What is GEEK

Buddha Community

PythonのNumpy Linalg Slogdet()関数
宇野  和也

宇野 和也

1636142820

PythonのNumpy Linalg Slogdet()関数

Numpy linalg slogdet()関数は、配列の行列式の符号と(自然)対数を計算するために使用されます。ここで問題となるのは、このslogdet()がいつ必要になるかということです。

ほとんどのリストのインデックスが少なすぎるか少なすぎる場合、det()の呼び出しがオーバーフローまたはアンダーフローする可能性があります。このプロセス(slogdet())は、ショートカット自体ではなくショートカットの対数を含むため、このような問題よりもはるかに堅牢です。

構文

numpy.linalg.slogdet(array)

パラメーター

slogdet()関数は単一のパラメーターを取ります。

  1. 配列:これは2D配列であり、正方形である必要があります。 

戻り値

slogdet()関数は2つの値を返します。

 

サイン: 

行列式の符号を表す数値。実数行列の場合、これは1、0、または-1です。複素行列の場合、これは絶対値が1の複素数(つまり、単位円上にある)、または0の複素数です。

logdet:

これは、行列式の絶対値の自然対数です。

 

行列式がゼロの場合、 `sign`は0になり、` logdet`

-Inf。すべての場合において、行列式は「sign * np.exp(logdet)」と同じです。

プログラミング例

1つの2D配列の行列式を計算するプログラム

# Program to calculate determinant of one 2D array
import numpy as np

# creating a 2D array
arr = np.array([[3, 4, 5], [7, 8, 6], [10, 11, 2]])

# printing the array
print(arr)

# calculating the slogdet
(sign, logdet) = np.linalg.slogdet(arr)

# Printing those values
print("Sign is : ", sign)
print("Logdet is :", logdet)

出力

[[ 3  4  5]
 [ 7  8  6]
 [10 11  2]]
Sign is :  1.0
Logdet is : 2.944438979166441

説明

このプログラムでは、サイズ3×3の正方行列を作成し、それを印刷しました。
 

次に、slogdet()を呼び出して、配列の符号とlogdetを取得しました。
 

サイン1を取得したことがわかります。

行列のスタックの対数行列式を計算するプログラム。

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

# Computing log-determinants for a stack of matrices
import numpy as np

# creating the stack matrices
arr = np.array([[[2, 1], [3, 4]], [[3, 4], [5, 6]], [[7, 8], [9, 10]]])
# printing the values
print("The array is:\n", arr)
print("Shape of the array is: ", arr.shape)

# Calculating the slogdet
(sign, logdet) = np.linalg.slogdet(arr)

# Printing those values
print("Sign is : ", sign)
print("Logdet is :", logdet)

出力

The array is:
 [[[ 2  1]
  [ 3  4]]

 [[ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]]]
Shape of the array is:  (3, 2, 2)
Sign is :  [ 1. -1. -1.]
Logdet is : [1.60943791 0.69314718 0.69314718]

説明

このプログラムでは、サイズ3×2の正方行列を作成し、それを印刷しました。

次に、slogdet()関数を呼び出して、配列の符号とlogdetを取得しました。

記号[1.-1。-1]。

リンク: https://appdividend.com/2020/11/09/numpy-linalg-slogdet-function-in-python-with-example/

#python 

Elton  Bogan

Elton Bogan

1600200960

SciPy Linear Algebra - SciPy Linalg

SciPy is one of the fundamental packages for scientific computations. It provides the user with mathematical algorithms and convenient built-in functions. It is handy in the field of data science. There are modules in SciPy for working with data science, maths, statistics, and also machine learning. We use scipy.linalg modules for working with machine learning concepts. Let us learn more about SciPy Linear Algebra.

#numpy tutorials #scipy linalg #scipy linear algebra #numpy

宇野  和也

宇野 和也

1636120800

PythonのNumpy Linalg Tensorsolve()関数

Numpy linalg tensorsolve()関数は、xのax = bの方程式を計算するために使用されます。行われているように、すべてのxインデックスが積とaの正しいインデックスの上に要約されていると想定されます。たとえば、tensordot(a、x、axes = b.ndim)。

構文

numpy.linalg.tensorsolve(A, B, axes=None )

パラメーター

  1. A:係数テンソル、条件b。status + Q. Q、タプルは、正しいインデックスの数が正しいサブテンソルの形状に等しく、同じである必要があります(pr)(Q)== prod(b).shape)( 「正方形」と呼ばれます)。
  2. B:右側のテンソル。任意の形状にすることができます。 

戻り値

linalg tensorsolve()関数は、Qと同じ形状のndarrayを返します。 

Aが特異であるか正方行列でない場合、linalg tensorsolve()関数はLinAlgErrorをスローします。

プログラミング例

tensorsolve()の動作を示すプログラム:

# Program to show working of solve()
import numpy as np

# creating the array "a"
A = np.array([[3, 4, 5], [1, 2, 3], [2, 4, 5]])
B = np.array([9, 8, 7])
print("Array A is: \n", A)
print("Array B is : \n", B)

# Calculating the equation
ans = np.linalg.tensorsolve(A, B)

# Printing the answer
print("Answer of the equation is  :\n", ans)

# Checking if the answer if correct
print(np.allclose(np.dot(A, ans), B))

出力

Array A is:
 [[3 4 5]
 [1 2 3]
 [2 4 5]]
Array B is :
 [9 8 7]
Answer of the equation is  :
 [  2.  -10.5   9. ]
True

説明

この例では、特異ではない3×3の正方行列を作成し、それを印刷しました。次に、サイズ3の配列を作成し、それも印刷しました。

次に、numpy.linalg.tensorsolve()呼び出して、方程式Ax = Bを計算しましたBの逆形状の出力があることがわかります。
 

また、ついに、返された答えがTrueであるかどうかを確認しました。

 

numpy linalg tensorsolve()関数については以上です。

リンク: https://appdividend.com/2020/11/09/numpy-linalg-tensorsolve-function-in-python/

#python 

山岸  英樹

山岸 英樹

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 Log1p()メソッド

NumPyはPython言語のサードパーティライブラリであり、大規模な多次元配列と行列のサポートを追加し、これらの配列で実行する多くの高レベルの数学関数を伴います。

Numpy log()関数は、値x + 1の自然対数を取得するために使用されます。ここで、xは配列の要素、またはxはオブジェクトです。log1pは、exp(x)–1の逆です。 

np.log1p

Numpy log1p()は、ユーザーがx + 1の自然対数値を計算するのに役立つ数学関数です。ここで、xはすべての入力配列要素に属します。log1pは() の逆である1 - EXP(X)

np.log1p()関数は二つの引数受け入れ アレイ と アウト パラメータ、および戻り値指定された配列要素の要素のX + 1の自然対数の配列。

 

構文

numpy.log1p(array[, out] = ufunc ‘log1p’)

パラメーター

np.log1p()関数は、最大2つの主要な引数を取ることができます。

  1. array:これは、ログが計算される入力配列またはオブジェクトです。ただし、この関数は配列のすべての要素に1を追加します。
  2. out:これはオプションのフィールドです。結果が格納される位置。指定する場合は、入力が伝達する形式である必要があります。指定しない場合またはなしの場合は、新しく割り当てられたリストを返します。タプルは(唯一のキーワード引数として可能)出力の数と同じ長さを有していなければなりません。

戻り値

log1p()関数は、指定された配列要素の要素の値x +1の自然対数の配列を返します。

 

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

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

# Program to show the working of numpy.log

# Importing numpy
import numpy as np

# We will create an 1D array
arr = np.array([4, 14, 10, 63, 11, 4, 64])
# Printing the array
print("The array is: ", arr)
# Shape of the array
print("Shape of the array is : ", np.shape(arr))

# Calculating natural log of value arr[i]+1
out = np.log1p(arr)
print("Natural logarithm of the given array is ")
print(out)

出力

The array is:  [ 4 14 10 63 11  4 64]
Shape of the array is :  (7,)
Natural logarithm of the given array is
[1.60943791 2.7080502  2.39789527 4.15888308 2.48490665 1.60943791
 4.17438727]

説明

このプログラムでは、形状7の配列を宣言してから、その配列を出力しました。次に、numpy.log1p()を呼び出して、指定された配列の要素の値arr [i] +1の自然対数を計算しました。

log()のグラフィック表現

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

# Program to show Graphical represntation

# Importing numpy
import numpy as np
import matplotlib.pyplot as plt

# We will create an 1D array
arr = np.array([40, 2.4, 0.14, 63, 1.2, 1, 4])
# Printing the array
print("The array is: ", arr)
# Shape of the array
print("Shape of the array is : ", np.shape(arr))

# Calculating natural log of value arr[i]+1
out = np.log1p(arr)
print("Natural logarithm of the given array is ")
print(out)

# Ploting of original array in Graph
# Color will be in Green
plt.plot(arr, arr, color='green', marker='x')

# Ploting of natural log array in Graph
# Color will be in blue
plt.plot(out, arr, color='blue', marker='o')

# Showing the Graphical represntation
plt.title("numpy.log1p()")
plt.xlabel("Natural Log Array")
plt.ylabel("Original Array")
plt.show()

出力

The array is:  [40.    2.4   0.14 63.    1.2   1.    4.  ]
Shape of the array is :  (7,)
Natural logarithm of the given array is
[3.71357207 1.22377543 0.13102826 4.15888308 0.78845736 0.69314718
 1.60943791]

Pythonのnplog1p()

説明

このプログラムでは、最初に形状7の配列を宣言し、次に配列要素がfloatデータ型である配列を出力しました。次に、numpy.log1p()を呼び出して、指定された配列の要素の自然対数を計算しました。

その後、グリーンラインの使用を示す2Dグラフに元の配列をプロットしました。自然対数を求めて得られたout配列をプロットしました。これは、青い線を使用して示しています。上記の画像で結果を確認できます。

numpy log1p()メソッドの例は以上です。

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

#python