2017年6月5日月曜日

開発環境

行列プログラマー(Philip N. Klein (著)、 松田 晃一 (翻訳)、 弓林 司 (翻訳)、 脇本 佑紀 (翻訳)、 中田 洋 (翻訳)、 齋藤 大吾 (翻訳)、オライリージャパン)の4章(行列)、4.1(行列とは何か?)、4.1.1(伝統的な行列)、列のリストのリストによる伝統的な行列の表現、クイズ4.1.2を取り組んでみる。

クイズ4.1.2

コード(Emacs)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import unittest
import sympy
import numpy as np
import pprint


class Test(unittest.TestCase):

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def test(self):
        m = [[i - j for i in range(3)]
             for j in range(4)]
        self.assertEqual(m, [[0, 1, 2],
                             [-1, 0, 1],
                             [-2, -1, 0],
                             [-3, -2, -1]])

m = [[i - j for i in range(3)]
     for j in range(4)]

sympy.pprint(sympy.Matrix(m))

print(np.array(m))
pprint.pprint(np.array(m))

sympy.pprint(sympy.Matrix(m).transpose())

print(np.array(m).transpose())
pprint.pprint(np.array(m).transpose())

if __name__ == '__main__':
    unittest.main()

入出力結果(Terminal, IPython)

$ ./sample2.py -v
⎡0   1   2 ⎤
⎢          ⎥
⎢-1  0   1 ⎥
⎢          ⎥
⎢-2  -1  0 ⎥
⎢          ⎥
⎣-3  -2  -1⎦
[[ 0  1  2]
 [-1  0  1]
 [-2 -1  0]
 [-3 -2 -1]]
array([[ 0,  1,  2],
       [-1,  0,  1],
       [-2, -1,  0],
       [-3, -2, -1]])
⎡0  -1  -2  -3⎤
⎢             ⎥
⎢1  0   -1  -2⎥
⎢             ⎥
⎣2  1   0   -1⎦
[[ 0 -1 -2 -3]
 [ 1  0 -1 -2]
 [ 2  1  0 -1]]
array([[ 0, -1, -2, -3],
       [ 1,  0, -1, -2],
       [ 2,  1,  0, -1]])
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
$

0 コメント:

コメントを投稿