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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

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ではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。