Basic array manipulations

In [1]:
import numpy as np
In [2]:
x = np.arange(1, 11)
In [3]:
x
Out[3]:
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
In [4]:
x_row = x.reshape((1, -1))
x_row
Out[4]:
array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10]])
In [5]:
x_col = x[:, np.newaxis]
x_col
Out[5]:
array([[ 1],
       [ 2],
       [ 3],
       [ 4],
       [ 5],
       [ 6],
       [ 7],
       [ 8],
       [ 9],
       [10]])
In [6]:
np.dot(x_col, x_row)
Out[6]:
array([[  1,   2,   3,   4,   5,   6,   7,   8,   9,  10],
       [  2,   4,   6,   8,  10,  12,  14,  16,  18,  20],
       [  3,   6,   9,  12,  15,  18,  21,  24,  27,  30],
       [  4,   8,  12,  16,  20,  24,  28,  32,  36,  40],
       [  5,  10,  15,  20,  25,  30,  35,  40,  45,  50],
       [  6,  12,  18,  24,  30,  36,  42,  48,  54,  60],
       [  7,  14,  21,  28,  35,  42,  49,  56,  63,  70],
       [  8,  16,  24,  32,  40,  48,  56,  64,  72,  80],
       [  9,  18,  27,  36,  45,  54,  63,  72,  81,  90],
       [ 10,  20,  30,  40,  50,  60,  70,  80,  90, 100]])
In [7]:
x_row * x_row
Out[7]:
array([[  1,   4,   9,  16,  25,  36,  49,  64,  81, 100]])
In [8]:
x_row * x_col
Out[8]:
array([[  1,   2,   3,  ...,   9,  10],
       [  2,   4,   6,  ...,  18,  20],
       ...
       [  9,  18,  27,  ...,  81,  90],
       [ 10,  20,  30,  ...,  90, 100]])