Pythonでドット積を求めるdot関数の使い方【初心者向け】

初心者向けにPythonでドット積を求める方法について解説しています。ドット積の計算にはnumpyモジュールを使用します。ドット積を求める際の基本構文を実際にソースコードを書きながら理解していきましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonでドット積を求める方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ドット積を求める方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ドット積とは

ベクトル演算の一つで、内積とも呼ばれます。

数学、物理学の各種ベクトル計算で用います。

 

ドット積を求める方法 (numpy.dotの使い方)

Pythonでドット積を計算するには、numpyモジュールのdot関数を用います。

dot関数は引数を2つ取ります。

引数が1次元ベクトル(配列)の場合、2つのベクトルの内積を計算します。

引数が2次元ベクトル(行列)の場合、行列の乗算を計算します。

詳細は公式の文書を参照してください。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

サンプルコード

import numpy as np

a = np.random.randint(0, 9, 5)
b = np.random.randint(0, 9, 5)
print(a)
print(b)
print(np.dot(a, b))

a = np.random.randint(0, 9, (3, 2))
b = np.random.randint(0, 9, (2, 3))
print(a)
print(b)
print(np.dot(a, b))

 

実行結果

[5 0 3 8 1]
[6 6 0 5 4]
74
[[2 8]
 [1 0]
 [0 8]]
[[1 5 3]
 [2 4 1]]
[[18 42 14]
 [ 1  5  3]
 [16 32  8]]

 

解説

1行目でnumpyモジュールをインポートしています。
3,4行目で1次元ベクトルを作成しました。

ベクトルの値はランダムな整数(randint)としました。
なお、引数は左から順に最小値、最大値、要素の個数を意味します。

7行目でnp.dot関数を用い、1次元ベクトルどうしのドット積を計算しています。
1次元ベクトルどうしなので、計算結果はスカラーになりました。

同様に9,10行目で2次元ベクトルを作成しました。
1つめのベクトルは3行2列、2つめのベクトルは2行3列です。

13行目でnp.dot関数を用い、2次元ベクトルどうしのドット積を計算しています。
2次元ベクトルどうしなので、計算結果は3行3列のベクトルになりました。

 

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。
開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。