質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

929閲覧

np.einsum()の下記の式の意味を教えてください。

kotai2001

総合スコア16

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/06/01 01:58

Python

1c = np.arange(4).reshape(2,2) 2d = np.arange(6).reshape(2,3)

Python

1[[0 1] 2 [2 3]] 3[[0 1 2] 4 [3 4 5]]

ここからが質問です。下記の式の意味を教えて頂けますか?

python

1np.einsum('ij, ik',c,d)

この式の計算結果は以下の通りです。

python

1print(np.einsum('ij, ik',c,d)) 2[[ 6 8 10] 3 [ 9 13 17]]

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotai2001

2021/06/01 02:03

リンクが切れています。
ozwk

2021/06/01 02:05

修正しました
kotai2001

2021/06/01 02:15 編集

ありがとうございました。リンクは1次元配列の例ですね。 2次元配列の場合には具体的にどう理解すればいいですか?
kotai2001

2021/06/02 08:41

どうもありがとうございました。
guest

回答1

0

ベストアンサー

アインシュタインの縮約記法は理解されていますか?
基本的には「添字が同じ場合は、その添字について和を取る」ということです。
(検索していただければ詳しい説明が見つかります)

今回の場合はiが同じなので、iについて和をとっています。(積をとってから和です)
残ったjとkが新しい軸になります。
ループで書くと下記のような処理です。

python

1# np.einsum('ij,ik', c, d) 2 3len_i, len_j = c.shape 4len_i2, len_k = d.shape 5assert len_i == len_i2 6 7result = np.empty((len_j, len_k), dtype=int) 8for j in range(len_j): 9 for k in range(len_k): 10 result[j, k] = sum(c[i, j] * d[i, k] for i in range(len_i)) 11 12print(result) 13# [[ 6 8 10] 14# [ 9 13 17]]

投稿2021/06/01 02:58

bsdfan

総合スコア4794

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問