質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

639閲覧

python numpyの次元について

gororo

総合スコア7

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/05/16 01:58

numpyについてです。

np.zeros(4)
np.zeros((1, 4))

上記の二種類についてなのですが違いはありますか?
shapeメソッドを実行すると
(4,)
(1,4)
というタプルが出るのですがどちらも[0,0,0,0]なので一つ目の配列も(1,4)だと考えているのですが理由が分かる方はいますか?数学的な質問かもしれませんがどなたかよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

python

1>>> import numpy as np 2>>> np.zeros(4) 3array([0., 0., 0., 0.]) 4>>> np.zeros((1,4)) 5array([[0., 0., 0., 0.]])

前者は[0., 0., 0., 0.]、後者は[[0., 0., 0., 0.]]なのでよく見ると微妙に違います。数学的に適当な用語がないので、後者はC言語風に2次元配列とでも呼んでみましょうか。
0番目の要素を取ってみます。

python

1>>> np.zeros(4)[0] 20.0 3>>> np.zeros((1,4))[0] 4array([0., 0., 0., 0.])

やっぱり違います。

追記

こういうときはndimを見ると簡単に確認できます。

python

1>>> np.zeros(4).ndim 21 3>>> np.zeros((1,4)).ndim 42

更に追記

これを見ればわかるかも。

python

1>>> np.zeros((1,4)) 2array([[0., 0., 0., 0.]]) 3>>> np.zeros((2,4)) 4array([[0., 0., 0., 0.], 5 [0., 0., 0., 0.]])

投稿2018/05/16 02:13

編集2018/05/16 02:20
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

いくつかあるうちのひとつですが、np.zeros(4)は転置がないです。np.zeros(4).Tと同じです。行列とベクトルの積を考える際には厄介な問題になったりしそうですよね。

投稿2018/05/16 02:09

編集2018/05/16 02:10
tachikoma

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/05/16 02:17

numpyの1次元配列の転置は元の1次元配列になります。転置してnp.zeros((1,4))になるのはnp.zeros((4,1))です
tachikoma

2018/05/16 02:21

ですね~ndim=1のときは縦ベクトルと横ベクトルが区別されない(できない)んですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問