【Python】numpyを使って配列に一個飛ばしで数を挿入する方法。
>>> import numpy as np
>>> a = np.array([1,2,3,4])
>>> func(a, 0)
array([1, 0, 2, 0, 3, 0, 4, 0])
これをなるべく短くしたいです。
0
>>> import numpy as np
>>> a = np.array([1,2,3,4])
>>> func(a, 0)
array([1, 0, 2, 0, 3, 0, 4, 0])
これをなるべく短くしたいです。
こうかな。
def func(a, v):
return np.ravel(list(zip(a, np.full_like(a, v))))
def func(a, v):
return np.vstack([a, [v] * len(a)]).T.reshape(-1)
でもできました。
def func(a, v):
out = np.full(a.size*2, v, dtype=a.dtype)
out[::2] = a
return out
はやい(短くはない)。
def func(a, v):
return np.c_[a, a // a * v].flat[:]