- ベストアンサー
python numpyで行列作成
numpyを使って行列計算を行おうとしていますが、肝心の行列作成でつまづいています。 下記のような書き方はできないんでしょうか? A = numpy.array([a, b, c], [b, c, d], [c, d, e]) (a~eは実数型の変数、3x3の行列を作りたい) web上で探した結果、数値は全てリテラルになってるようですが、 変数を使った初期化は無理ですか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
A = numpy.array([[a, b, c], [b, c, d], [c, d, e]]) では? マニュアルを読むと、行列の内容を指定する引数は一つだけです。 その指定では、引数が3つ指定されています。
お礼
結局行列として計算する場合は次のように書くのが正解のようでした。 A = numpy.matrix([[a, b, c], [b, c, d], [c, d, e]]) B = numpy.matrix([[m], [n], [o]]) C = numpy.linalg.solve(A, B) ※arrayをmatrixに変更。 列ベクトルはちゃんと列ベクトルとして表現する。
補足
回答有り難うございます。 上記の書き方だと文法的には通ったのですが、続くコードで エラーになってしまいます。 A = numpy.array([[a, b, c], [b, c, d], [c, d, e]]) B = numpy.array([[m, n, o]]) C = numpy.linalg.solve(A, B)←エラー(次元数の互換性無し?) 次の書き方はOK A = numpy.zeros((3, 3)) インデックスを指定して値を代入x9個 のようです。