プログラムはなぜ
import numpy as np
c = np.array([1,2])
print(c.shape)
d = np.array([[1],[2]]).transpose()
print(d.shape)
与える
(2,)
(1,2)
その出力として?そうじゃないかな
(1,2)
(1,2)
代わりは?私はpython 2.7.3とpython 3.2.3の両方でこれを得ました
.shapea の属性を呼び出すndarrayと、配列の次元と同じ数の要素を持つタプルが得られます。長さ、つまり行数は、最初の次元です ( shape[0])
c=np.array([1,2])。これは単純な 1D 配列なので、その形状は 1 要素のタプルになりshape[0]、要素の数になります。c.shape = (2,)c=np.array([[1,2]])。これは 1 行の 2D 配列です。最初で唯一の行は です[1,2]。これにより、2 つの列が得られます。したがってc.shape=(1,2)、len(c)=1c=np.array([[1,],[2,]])。2 行 1 列の別の 2D 配列:c.shape=(2,1)とlen(c)=2.d=np.array([[1,],[2,]]).transpose(): この配列は と同じなnp.array([[1,2]])ので、その形状は(1,2)です。もう 1 つの便利な属性は.size次のとおりです。これは、すべての次元にわたる要素の数であり、配列にはc c.size = np.product(c.shape).
形状の詳細については、ドキュメントを参照してください。
len(c.shape)配列の「深さ」です。
の場合c、配列は単なるリスト(ベクトル)であり、深さは1です。
の場合d、配列はリストのリストであり、深さは2です。
ノート:
c.transpose()
# array([1, 2])
これはそうではないdので、この動作は矛盾していません。
dt = d.transpose()
# array([[1],
# [2]])
dt.shape # (2,1)
transpose配列の次元数は変更されません。の場合c.ndim == 1、c.transpose() == c。試す:
c = np.array([1,2])
print c.shape
print c.T.shape
c = np.atleast_2d(c)
print c.shape
print c.T.shape