混合的
numpy
和
pandas
n = 5
a = [np.nan] + S.tolist()
a_out = np.flip(pd.DataFrame([a[:-i][::-1] for i in range(1,n+1)]).to_numpy(),
(0,1)).T
Out[464]:
array([[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, 1.],
[nan, nan, nan, 1., 1.],
[nan, nan, 1., 1., 2.],
[nan, 1., 1., 2., 3.],
[ 1., 1., 2., 3., 5.],
[ 1., 2., 3., 5., 8.],
[ 2., 3., 5., 8., 13.],
[ 3., 5., 8., 13., 21.]])
或者纯粹的
python
和
努比
n = 5
a = S.tolist()
a_out = np.flip([a[:-i][::-1] + [np.nan]*i for i in range(1,n+1)], (0,1)).T
Out[476]:
array([[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, 1.],
[nan, nan, nan, 1., 1.],
[nan, nan, 1., 1., 2.],
[nan, 1., 1., 2., 3.],
[ 1., 1., 2., 3., 5.],
[ 1., 2., 3., 5., 8.],
[ 2., 3., 5., 8., 13.],
[ 3., 5., 8., 13., 21.]])