Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python NumPyのcross()メソッドで2つのベクトルの外積を計算し、結果の軸(方向)を変更する方法

2つのベクトルの外積(クロス積)を計算するには、PythonのNumPyで提供されている numpy.cross() メソッドを使用します。このメソッドは、ベクトルの外積である c を返します。

主なパラメータは以下のとおりです。

  • 第1引数 a:最初のベクトルの成分
  • 第2引数 b:2番目のベクトルの成分
  • 第3引数 axisa:ベクトルを定義する a の軸。デフォルトは最後の軸です。
  • 第4引数 axisb:ベクトルを定義する b の軸。デフォルトは最後の軸です。
  • 第5引数 axisc:外積ベクトルを格納する c の軸。両方の入力ベクトルの次元が2の場合、戻り値がスカラーになるため無視されます。デフォルトは最後の軸です。
  • 第6引数 axis:指定した場合、a・b・c すべてに共通するベクトルおよび外積を定義する軸となります。axisa、axisb、axisc よりも優先されます。

手順

まず、必要なライブラリをインポートします。

import numpy as np

次に、2つのベクトルを作成します。ここでは int 型の要素を挿入しています。

arr1 = np.array([[5,10,15], [30,35,40]])
arr2 = np.array([[30,35,40], [5,10,15]])

作成したベクトルを表示します。

print("Vector 1...\n", arr1)
print("\nVector 2...\n", arr2)

2つのベクトルの外積を計算するには、Python Numpy の numpy.cross() メソッドを使用します。このメソッドは、ベクトルの外積 c を返します。ここでは axisc=0 を指定することで、結果の出力方向(軸)を変更しています。

print("\nResult...\n",np.cross(arr1, arr2, axisc=0))

サンプルコード

import numpy as np

# 2つのベクトルを作成
# int 型の要素を挿入
arr1 = np.array([[5,10,15], [30,35,40]])
arr2 = np.array([[30,35,40], [5,10,15]])

# ベクトルを表示
print("Vector 1...\n", arr1)
print("\nVector 2...\n", arr2)

# numpy.cross() メソッドで2つのベクトルの外積を計算
print("\nResult...\n",np.cross(arr1, arr2, axisc=0))

出力結果

Vector 1...
[[ 5 10 15]
[30 35 40]]

Vector 2...
[[30 35 40]
[ 5 10 15]]

Result...
[[-125 125]
[ 250 -250]
[-125 125]]

このように、axisc パラメータを活用することで、外積の結果が格納される軸を自由に制御できます。多次元配列を扱う際に、出力の形状を目的の構造に合わせたい場合に非常に便利です。

  1. Pythonでインデックス値と要素の積の合計を求める方法|enumerateの使い方

    リストの各要素に対して「インデックス値 × 要素」の積を計算し、その合計を求めたい場合には、Pythonの組み込み関数 enumerate を使用するのが便利です。本記事では、基本的なforループを使った方法と、sum() 関数を組み合わせたより簡潔な書き方の両方を紹介します。サンプルコード以下に具体的な実装例を示します。my_list = [71, 23, 53, 94, 85, 26, 0, 8] print(The list is :) print(my_list) my_result = 0 for index, element in enumerate(my_list):

  2. Pythonで2つのスパースベクトルの内積を計算するプログラム

    問題の概要ここでは、2つのリストで表現されたスパースベクトル(疎なベクトル)が与えられ、その内積(ドット積)を求めることを考えます。ベクトルはオブジェクトとして表現され、各要素のリストはオブジェクトのメンバー変数 nums に格納されています。例えば、入力が以下のような場合を考えてみましょう。vector1 = [1, 0, 0, 0, 1]vector2 = [0, 0, 0, 1, 1]このときの出力は 1 になります。内積の計算は次のとおりです。1 × 0 + 0 × 0 + 0 × 0 + 0 × 1 + 1 × 1 = 1解決のための手順この問題を解くには、以下の手順に従います。結果