• ベストアンサー

python numpyで行列作成

numpyを使って行列計算を行おうとしていますが、肝心の行列作成でつまづいています。 下記のような書き方はできないんでしょうか? A = numpy.array([a, b, c], [b, c, d], [c, d, e]) (a~eは実数型の変数、3x3の行列を作りたい) web上で探した結果、数値は全てリテラルになってるようですが、 変数を使った初期化は無理ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

A = numpy.array([[a, b, c], [b, c, d], [c, d, e]]) では? マニュアルを読むと、行列の内容を指定する引数は一つだけです。 その指定では、引数が3つ指定されています。

doraikinoko
質問者

お礼

結局行列として計算する場合は次のように書くのが正解のようでした。 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に変更。  列ベクトルはちゃんと列ベクトルとして表現する。

doraikinoko
質問者

補足

回答有り難うございます。 上記の書き方だと文法的には通ったのですが、続くコードで エラーになってしまいます。 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個 のようです。

関連するQ&A