2017-09-06 7 views
1

私は以下のようにndarrayを持っています。Pythonのndarrayに余分の列を追加します

feature_matrix = [[0.1, 0.3], [0.7, 0.8], [0.8, 0.8]] 

私は次のように位置ndarrayを持っています。

position = [10, 20, 30] 

次に、feature_matrixの先頭に位置の値を追加します。

[[10, 0.1, 0.3], [20, 0.7, 0.8], [30, 0.8, 0.8]] 

私はこれで答えてみました:しかし、私はそれを言って、エラーを取得しHow to add an extra column to an numpy array

E.g., 

feature_matrix = np.concatenate((feature_matrix, position), axis=1) 

を。

ValueError: all the input arrays must have same number of dimensions 

この問題を解決するのを手伝ってください。

+0

'np.column_stack'を使用してください。 – Divakar

+0

前の質問に自分の答えを適応させようとしましたか? 'np.insert(feature_matrix、0、[10,20,30]、ax is = 1)'; https://stackoverflow.com/questions/46065339/how-to-insert-list-of-ndarray-lists-to-a-newndarray-in-python – hpaulj

+0

はい、SyntaxError:識別子に無効な文字があります。それは軸の部分に来る。 –

答えて

1

これは私の問題を解決しました。私はnp.column_stackを使用しました。

feature_matrix = [[0.1, 0.3], [0.7, 0.8], [0.8, 0.8]] 
position = [10, 20, 30] 
feature_matrix = np.column_stack((position, feature_matrix)) 
0

feature_matrixの形状に関する誤っあるpositionアレイの形状です。

>>> feature_matrix 
array([[ 0.1, 0.3], 
     [ 0.7, 0.8], 
     [ 0.8, 0.8]]) 

>>> position 
array([10, 20, 30]) 

>>> position.reshape((3,1)) 
array([[10], 
     [20], 
     [30]]) 

溶液(np.concatenateで)です:

>>> np.concatenate((position.reshape((3,1)), feature_matrix), axis=1) 
array([[ 10. , 0.1, 0.3], 
     [ 20. , 0.7, 0.8], 
     [ 30. , 0.8, 0.8]]) 

しかしnp.column_stackは、あなたのケースでは明らかに素晴らしいです!

関連する問題