2016-10-29 8 views
1

私は配列の2つのnumpy配列(AとB)を持っています。印刷されたとき、彼らはこのような何かを見て:numpy配列のナンシー配列は1D形状を持っています

A:

[array([0, 0, 0]) array([0, 0, 0]) array([1, 0, 0]) array([0, 0, 0]) 
array([0, 0, 0]) array([0, 0, 0]) array([0, 0, 0]) array([0, 0, 0]) 
array([0, 0, 0]) array([0, 0, 0]) array([0, 0, 1]) array([0, 0, 0]) 
array([1, 0, 0]) array([0, 0, 1]) array([0, 0, 0]) array([0, 0, 0]) 
array([0, 0, 0]) array([1, 0, 0]) array([0, 0, 1]) array([0, 0, 0])] 

B:

[[ 4.302135e-01 4.320091e-01 4.302135e-01 4.302135e-01 
    1.172584e+08] 
[ 4.097128e-01 4.097128e-01 4.077675e-01 4.077675e-01 
    4.397120e+07] 
[ 3.796353e-01 3.796353e-01 3.778396e-01 3.778396e-01 
    2.643200e+07] 
[ 3.871173e-01 3.890626e-01 3.871173e-01 3.871173e-01 
    2.161040e+07] 
[ 3.984899e-01 4.002856e-01 3.984899e-01 3.984899e-01 
    1.836240e+07] 
[ 4.227315e-01 4.246768e-01 4.227315e-01 4.227315e-01 
    1.215760e+07] 
[ 4.433817e-01 4.451774e-01 4.433817e-01 4.433817e-01 
    9.340800e+06] 
[ 4.620867e-01 4.638823e-01 4.620867e-01 4.620867e-01 
    1.173760e+07]] 

type(A)type(A[0])type(B)type(B[0])はすべて<class 'numpy.ndarray'>です。

ただし、A.shape(20,)であり、B.shape(8, 5)です。

質問1:なぜA.shapeは1次元であり、どのようにしてB.shapeのように2次元にするのですか?どちらも配列の配列ですよね?おそらくQ1に関連

質問2:なぜAarray()の呼び出しを示して印刷しない、Bを印刷中にはない、なぜBのサブアレイの要素は、それらの間で、コンマを持っていないのですか?

ありがとうございます。

+1

を使用すると、各配列の 'dtype'を見たことがありますか? 1つは配列の配列で、もう1つは浮動小数点の2次元配列です。 – Evert

+0

これは私の質問です - どのように配列の配列をint/floatの2次元配列にするのですか? –

答えて

2

A.dtypeOであり、対象がB.dtypeであり、floatである。

Aは、配列であるオブジェクトを含む1次元配列です。彼らはリストまたはNone`と同様にできます。

Bは、2次元浮動小数点配列です。 Bの1つの行を索引付けすると、1dの配列が得られます。

したがってA[0]B[0]は同じことを起こすように見えますが、選択プロセスは異なります。

np.concatenate(A)またはnp.vstack(A)を試してください。これらの両方は、Aを配列のリストとして扱い、1または2dのいずれかで結合します。

オブジェクト配列をレギュラーに変換する作業が頻繁に行われます。

Converting a 3D List to a 3D NumPy array もう少し一般的なことですが、必要な情報はたくさんありますが、有用な情報がたくさんあります。

Convert a numpy array of lists to a numpy array

==================

In [28]: A=np.empty((5,),object) 
In [31]: A 
Out[31]: array([None, None, None, None, None], dtype=object) 
In [32]: for i in range(5):A[i]=np.zeros((3,),int) 
In [33]: A 
Out[33]: 
array([array([0, 0, 0]), array([0, 0, 0]), array([0, 0, 0]), 
     array([0, 0, 0]), array([0, 0, 0])], dtype=object) 
In [34]: print(A) 
[array([0, 0, 0]) array([0, 0, 0]) array([0, 0, 0]) array([0, 0, 0]) 
array([0, 0, 0])] 
In [35]: np.vstack(A) 
Out[35]: 
array([[0, 0, 0], 
     [0, 0, 0], 
     [0, 0, 0], 
     [0, 0, 0], 
     [0, 0, 0]]) 
+0

ああ、私はその答えを逃した...ありがとう! –

関連する問題