2017-12-28 18 views
-2

numpy配列をリストに連結したい。このような :リストとnumpy配列を連結する

trainClass = np.ones(len(allDataList[0])).tolist() 
trainArray = tfIdfsListTrain.toarray() 
np.concatenate((trainArray, trainClass)) 

が、私はそれを行うのですか分かりません。

+2

あなたの配列は 'numpy.array'ですか?あなたのリストの名前は 'list'ですか?いくつかのサンプルデータを提供してください。変数名に 'list'などの名前を付けない方が良いでしょう。 –

+0

どうしたの?リストを配列に変換し、 'concatenate'に渡します。あるいは、あなたのために '連結 'させてください。エラーがある場合は、形状と寸法が一致していない可能性があります。 – hpaulj

+0

配列の@hpauljの形状は(2500,8600)であり、リストのlenは2500です。 – MahsaSeifikar

答えて

1

あなたのリストのようなサウンドは、配列に変換すると正しい次元数を持たない。私が説明しましょう:

In [323]: arr = np.arange(12).reshape(3,4) 
In [324]: alist = list(range(3)) 
In [325]: np.concatenate((arr,alist)) 
--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-325-9b72583c40de> in <module>() 
----> 1 np.concatenate((arr,alist)) 

ValueError: all the input arrays must have same number of dimensions 
In [326]: arr.shape 
Out[326]: (3, 4) 

concatenateは、配列に任意のリスト入力をオン:

In [327]: np.array(alist).shape 
Out[327]: (3,) 

arrは2Dであるので、この配列は、同様2dはする必要があります

In [328]: np.array(alist)[:,None].shape 
Out[328]: (3, 1) 
In [329]: np.concatenate((arr, np.array(alist)[:,None]), axis=1) 
Out[329]: 
array([[ 0, 1, 2, 3, 0], 
     [ 4, 5, 6, 7, 1], 
     [ 8, 9, 10, 11, 2]]) 

それは簡単です。最後の次元の(3,4)配列と(3,1)配列を連結します。

私は多くの人がこのような形状や寸法など、numpyのアレイの基本のいくつかを理解せずに機械学習コード(tensorflowkerassklearn)に飛び込むされているという印象を得ます。

+0

あなたの最後のコメントはとても真実です。以前は、すべてをブラックボックスとして使って、深く騒がしい熱狂を味わっていましたが、幸運なことに、ステップバイステップで私を導いてくれる良いメンターがいました。私は深い学習に飛び込む前に基本を徹底的に学んでいます。 –

関連する問題