私はnumpyのアレイがあると:numpyで計算/計算カラムを追加するには?
1 10
2 20
3 0
4 30
およびIは、それぞれの行は、その行の最初の2つの列の和(またはいくつかの任意の演算)である第3の列を追加したい:
1 10 11
2 20 22
3 0 3
4 30 34
を
どうすればよいですか?
私はnumpyのアレイがあると:numpyで計算/計算カラムを追加するには?
1 10
2 20
3 0
4 30
およびIは、それぞれの行は、その行の最初の2つの列の和(またはいくつかの任意の演算)である第3の列を追加したい:
1 10 11
2 20 22
3 0 3
4 30 34
を
どうすればよいですか?
import numpy
my_arr = numpy.array([[1, 10],
[2, 20],
[3, 0],
[4, 30]])
column0 = my_arr[:,0:1] # Use 0:1 as a dummy slice to maintain a 2d array
column1 = my_arr[:,1:2] # Use 1:2 as a dummy slice to maintain a 2d array
new_column = column0 + column1
my_arr = numpy.hstack((my_arr, new_column))
は、軸1に沿って次の
注np.sumが賢明要素の行を追加してみてください。 あなたは、列の行列として結果を再形成し、最終的に元の配列
>>> new_col = np.sum(x,1).reshape((x.shape[0],1))
>>> np.append(x,new_col,1)
array([[ 1, 10, 11],
[ 2, 20, 22],
[ 3, 30, 33],
[ 4, 40, 44]])
または単一の行の計算のこれらの種類の
np.append(x,np.sum(x,1).reshape((x.shape[0],1)),1)
に追加することができ、内蔵map functionは非常に便利です。計算の結果を3番目の列に追加するだけです。合計するために:
>>> import numpy as np
>>> my_arr = np.array([[1, 10], [2, 20], [3, 0], [4, 30]])
>>> np.vstack((my_arr.T, map(sum, my_arr))).T
array([[ 1, 10, 11],
[ 2, 20, 22],
[ 3, 0, 3],
[ 4, 30, 34]])
をまた、他の機能と連携して動作します。
>>> my_func = lambda x: 2*x[0] + x[1]
>>> np.vstack((my_arr.T, map(my_func, my_arr))).T
array([[ 1, 10, 12],
[ 2, 20, 24],
[ 3, 0, 6],
[ 4, 30, 38]])