Help us understand the problem. What is going on with this article?

ndarrayで行ベクトルを列ベクトルに変換するときに気を付けるべきこと

pythonのndarrayで、行ベクトルを列ベクトルに変換するときのお話です。
思わず、次のようにしてしまいがちですよね。
print(np.array([1,2,3,4,5]).T)
でもこれだと、結果は

[1 2 3 4 5]

となってしまい、行ベクトルに変換できません。
これは、行ベクトルが1次元配列で表現されているのに対し、
列ベクトルは2次元以上の配列でないと表現できないからです。
実際、
print(np.array([[1,2,3,4,5]]).T)
のように2次元配列で行ベクトルを渡せば、ちゃんと

[[1]
 [2]
 [3]
 [4]
 [5]]

という結果を得ます。

ちなみに
print(np.transpose(np.array([1,2,3,4,5])))
においても同様で、列ベクトルは得られません。

一次元配列としての行ベクトルvから(2次元配列としての)列ベクトルmを得たいときは、

m = np.array([v]).T

としましょう

17ec084
Googleの同級生です※1。実験または自然科学的手法で正当性を示せない知識体系は学問でも科学でもないと思っています。 したがって、すべての人間カガク・社会カガク・イデオロギーは統計的事実に基づくべきだと思います。 だから、統計・データサイエンスに関わるソフトウェアやプログラムを開発するのが夢です。 ※1 僕の生まれた年もGoogleの設立された年も1998年
http://rights-for.men/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away