裏表(Phinloda のもう裏だか表だか分からないページ)

コンピュータ・プログラミング系の話がメインのそれなりにごちゃごちゃしたネタばかり出てくるサイトです。多分。
<< クリックしてもウインドウがアクティブにならない現象が再発しているのだが | Top | ココログに投稿しようとしたのだが >>
とある掲示板に行列の問題に関する質問があったのだが

問題は端折るが、この行列計算は間違っているのか、という質問で、4×4行列を掛け算すればいいだけの話だ。これを手でやるのも面倒なので、numpy を使って計算してやった。

>>> import numpy as np
>>> i = np.array([[0,-1,0,0],[1,0,0,0],[0,0,0,1],[0,0,-1,0]])
>>> i
array([[ 0, -1, 0, 0],
[ 1, 0, 0, 0],
[ 0, 0, 0, 1],
[ 0, 0, -1, 0]])
>>> j = np.array([[0,0,-1,0],[0,0,0,-1],[1,0,0,0],[0,1,0,0]])
>>> j
array([[ 0, 0, -1, 0],
[ 0, 0, 0, -1],
[ 1, 0, 0, 0],
[ 0, 1, 0, 0]])
>>> k = np.array([[0,0,0,1],[0,0,-1,0],[0,1,0,0],[-1,0,0,0]])
>>> k
array([[ 0, 0, 0, 1],
[ 0, 0, -1, 0],
[ 0, 1, 0, 0],
[-1, 0, 0, 0]])

>>> (np.dot(i, j) == k).all()
True
>>> (-np.dot(j, i) == k).all()
True
>>> (np.dot(j, k) == i).all()
True
>>> (-np.dot(k,j) == i).all()
True
>>> (np.dot(k,i) == j).all()
True
>>> (-np.dot(i,k) == j).all()
True

ちょっと気になったのは、こんな回答で果たして質問した人が納得してくれるかどうかである。蛇足しておくと、np.dot() は配列を行列として積を求める関数で、all() は全て True であるときに True とする関数。all() を付けないと、各要素毎に比較して True かどうかを表示する。それでも別に構わないのだが、掲示板には文字数制限があるので、なるべく文字数を節約するということで。

JUGEMテーマ:python

| Python | 18:36 | comments(0) | trackbacks(0)
スポンサーサイト
| - | 18:36 | - | -
コメント
コメントする









この記事のトラックバックURL
http://phinloda.jugem.cc/trackback/4719
トラックバック
Powered by "JUGEM"
▲このページの先頭へ
CALENDAR
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031   
<< July 2019 >>
NEW ENTRIES
CATEGORIES
ARCHIVES
NEW COMMENTS
NEW TRACKBACKS
LINKS
PROFILE