Let arrays with random elements be generated
Inputs
In [62]: X
Out[62]:
array([[ 0.32322974, 0.50491961, 0.40854442, 0.36908488],
[ 0.58840196, 0.1696713 , 0.75428203, 0.01445901],
[ 0.27728281, 0.33722084, 0.64187916, 0.51361972],
[ 0.39151808, 0.6883594 , 0.93848072, 0.48946276]])
In [63]: a
Out[63]: array([ 0.01278876, 0.01854458, 0.16953393, 0.37159562])
I. Subtraction along axis=1
axis=1, .. a X, X . X:
In [64]: X[0] - a
Out[64]: array([ 0.31044099, 0.48637503, 0.23901049, -0.00251074])
, :
X[0,0] - a[0], X[0,1] - a[1], X[0,2] - a[2] , X[0,3] - a[3]
, X a. X 2D, a - 1D, :
X : n x n
a : n
, X-a :
In [65]: X-a
Out[65]:
array([[ 0.31044099, 0.48637503, 0.23901049, -0.00251074],
[ 0.5756132 , 0.15112672, 0.5847481 , -0.3571366 ],
[ 0.26449405, 0.31867625, 0.47234523, 0.1420241 ],
[ 0.37872932, 0.66981482, 0.76894679, 0.11786714]])
, , , X[0] - a, .
: , a elems , . , , , axis=1, a axis=0.
II. axis=0
, axis=0, .. a X, col X . X:
In [67]: X[:,0]-a
Out[67]: array([ 0.31044099, 0.56985738, 0.10774888, 0.01992247])
, :
X[0,0] - a[0], X[1,0] - a[1], X[2,0] - a[2] , X[3,0] - a[3]
, X a. X 2D, a - 1D, a 2D a[:,None]:
X : n x n
a[:,None] : n x 1
, X-a[:,None] :
In [68]: X-a[:,None]
Out[68]:
array([[ 0.31044099, 0.49213085, 0.39575566, 0.35629612],
[ 0.56985738, 0.15112672, 0.73573745, -0.00408557],
[ 0.10774888, 0.16768691, 0.47234523, 0.34408579],
[ 0.01992247, 0.31676379, 0.5668851 , 0.11786714]])
, , , X[:,0] - a, .