In [194]: A = np.arange(1, 5, 0.5)
...: B = np.arange(11, 15, 0.5)
Список, полученный из A
, является копией. изменения на месте в C
не влияют на A
:
In [196]: C = A.tolist()
In [197]: for i,v in enumerate(B):
...: C.insert(2*i+1,v)
...:
In [198]: A
Out[198]: array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
In [199]: B
Out[199]: array([11. , 11.5, 12. , 12.5, 13. , 13.5, 14. , 14.5])
In [200]: C
Out[200]:
[1.0,
11.0,
1.5,
11.5,
2.0,
12.0,
2.5,
12.5,
3.0,
13.0,
3.5,
13.5,
4.0,
14.0,
4.5,
14.5]
Подход с использованием массива:
In [201]: np.vstack((A,B))
Out[201]:
array([[ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5],
[11. , 11.5, 12. , 12.5, 13. , 13.5, 14. , 14.5]])
In [202]: np.vstack((A,B)).ravel(order='F')
Out[202]:
array([ 1. , 11. , 1.5, 11.5, 2. , 12. , 2.5, 12.5, 3. , 13. , 3.5,
13.5, 4. , 14. , 4.5, 14.5])
Или мы могли бы складывать массивы как столбцы и делать обычные C
упорядочивание.
===
Другой способ списка - используйте zip
, чтобы составить список списков, и itertools.chain
, чтобы сгладить его:
In [203]: import itertools
In [204]: [(i,j) for i,j in zip(A,B)]
Out[204]:
[(1.0, 11.0),
(1.5, 11.5),
(2.0, 12.0),
(2.5, 12.5),
(3.0, 13.0),
(3.5, 13.5),
(4.0, 14.0),
(4.5, 14.5)]
In [205]: list(itertools.chain(*[(i,j) for i,j in zip(A,B)]))
Out[205]:
[1.0,
11.0,
1.5,
11.5,
2.0,
12.0,
2.5,
12.5,
3.0,
13.0,
3.5,
13.5,
4.0,
14.0,
4.5,
14.5]