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

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

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

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

Python

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

Q&A

解決済

3回答

1579閲覧

numpyの行列の積について

penhakennyori

総合スコア19

NumPy

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

Python

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

1グッド

0クリップ

投稿2021/02/03 13:48

以下の計算をするとエラーが出ます。
なぜか分かりません。
bは2×3の行列
a2は3×2の行列
です。
結果は、2×2の行列となると思っていますが、違いました。

ご指導よろしくお願いいたします。

import numpy as np a = np.array([[0,1,10],[0,1,10]]) b = a.copy() a2 = a.reshape(3,2) b*a2
Masaporon👍を押しています

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

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

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

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

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

guest

回答3

0

https://note.nkmk.me/python-numpy-matrix/
を参照していただければと思います。
@演算子と等価なものにnumpy.matmul()があります。

投稿2021/02/03 14:14

yurimon

総合スコア7

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

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

penhakennyori

2021/02/10 12:30

回答ありがとうございます 大変勉強になりました
guest

0

ベストアンサー

numpyでは*はかなり複雑な挙動の演算子ですが、とりあえず同じndimの行列同士で演算する場合はアダマール積になります。よって異なるshapeでは使えません。

ドット積(通常の行列関)は@演算子で求めることが出来ます。

python

1b @ a2 2

投稿2021/02/03 13:54

hayataka2049

総合スコア30935

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

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

penhakennyori

2021/02/10 12:31

ご回答ありがとうございます。 異なるshapeでは演算できないということでイメージが付きました。
guest

0

* は要素ごとの積です、行列積を計算したい場合は @ 演算子です。

diff

1- c = b * a2 2+ c = b @ a2

投稿2021/02/03 13:52

tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問