Like so:
In [22]: import numpy as np
In [23]: x = np.array([[-0.77947021, 0.83822138],
...: [ 0.15563491, 0.89537743],
...: [-0.0599077, -0.71777995],
...: [ 0.20759636, 0.75893338]])
In [24]: np.c_[x, x[:,0] * x[:,1]]
Out[24]:
array([[-0.77947021, 0.83822138, -0.6533686 ],
[ 0.15563491, 0.89537743, 0.13935199],
[-0.0599077 , -0.71777995, 0.04300055],
[ 0.20759636, 0.75893338, 0.15755181]])
This uses numpy.c_, which is a convenience function to concatenate various arrays along their second dimension.
You can find some more info about concatenating arrays in Numpy's tutorial. Functions like hstack (see Jaime's answer), vstack, concatenate, row_stack and column_stack are probably the 'official' functions you should use. The functions r_ and c_ are a bit of hack to simulate some of Matlab's functionality. They are a bit ugly, but allow you write a bit more compactly.