## 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]])