Мы можем индивидуально получить их обратно:
b = u[:n].reshape(-1, 1)
v = u[-n:].reshape(1, -1)
w = u[n:-n].reshape(-1, 2)
Это работает, поскольку u
- это вектор с 4 & times; N элементами, который выглядит следующим образом:
u = [ b<sub>00</sub>, b<sub>10</sub>, …, b<sub>n0</sub>,
w<sub>00</sub>, w<sub>01</sub>, w<sub>10</sub>, w<sub>11</sub>, …, w<sub>n0</sub>, w<sub>n1</sub>,
v<sub>00</sub>, v<sub>01</sub>, …, v<sub>0n</sub>]
Таким образом, речь идет о первых n элементах, последних n элементах и элементах между ними.
Например, для n=5
мы можем случайным образом сгенерировать три массива:
>>> w
array([[ 1., -0.],
[-1., 2.],
[ 0., -2.],
[-1., 1.],
[-1., -1.]])
>>> b
array([[ 0.],
[-1.],
[-0.],
[-1.],
[-0.]])
>>> v
array([[-0., -0., -0., -0., -2.]])
, затем u
:
>>> u
array([ 0., -1., -0., -1., -0., 1., -0., -1., 2., 0., -2., -1., 1.,
-1., -1., -0., -0., -0., -0., -2.])
мы можем получить данные обратно:
>>> u[:n].reshape(-1, 1) # b
array([[ 0.],
[-1.],
[-0.],
[-1.],
[-0.]])
>>> u[-n:].reshape(1, -1) # v
array([[-0., -0., -0., -0., -2.]])
>>> u[n:-n].reshape(-1, 2) # w
array([[ 1., -0.],
[-1., 2.],
[ 0., -2.],
[-1., 1.],
[-1., -1.]])