Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy数组:找不到如何转换数组_Python_Arrays_Numpy - Fatal编程技术网

Python numpy数组:找不到如何转换数组

Python numpy数组:找不到如何转换数组,python,arrays,numpy,Python,Arrays,Numpy,我有两个numpy数组:b和s。和lenb==2*lens s的形式如下: l r l r l r ... 我想把它转换成什么: 0 0 l r 0 0 l r 0 0 l r ... 我用简单的方法来做: ix = 0 jx = 0 while ix < len(b): b[ix] = 0 ix += 1 b[ix] = 0 ix += 1 b[ix] = s[jx] ix += 1 jx += 1 b[ix] = s

我有两个numpy数组:b和s。和lenb==2*lens

s的形式如下:

l r l r l r ...
我想把它转换成什么:

0 0 l r 0 0 l r 0 0 l r ...
我用简单的方法来做:

ix = 0
jx = 0
while ix < len(b):
    b[ix] = 0
    ix += 1
    b[ix] = 0
    ix += 1 
    b[ix] = s[jx]
    ix += 1
    jx += 1
    b[ix] = s[jx]
    ix += 1
    jx += 1
为了提高速度,我想使用numpy api做同样的事情,但无法让某些东西正常工作


我应该使用什么numpy方法?

可能不是最聪明的解决方案,但您可以通过两个步骤完成,类似于:


可能不是最聪明的解决方案,但您可以通过以下两个步骤完成:


基于b和s中的重复,我自动看到二维解决方案:

b = np.zeros(N,4)
b[:,2:] = s.reshape(N,2)
b = b.flatten()
或将0附加到重塑的s上:

或者如果我们想用3d来思考

np.einsum('ij,k->ikj',s.reshape(N,2),[0,1]).flatten()
广播也是一样

(s.reshape(10,2)[:,None,:]*np.array([0,1])[None,:,None]).flatten()

基于b和s中的重复,我自动看到二维解决方案:

b = np.zeros(N,4)
b[:,2:] = s.reshape(N,2)
b = b.flatten()
或将0附加到重塑的s上:

或者如果我们想用3d来思考

np.einsum('ij,k->ikj',s.reshape(N,2),[0,1]).flatten()
广播也是一样

(s.reshape(10,2)[:,None,:]*np.array([0,1])[None,:,None]).flatten()

有趣的解决方案!谢谢。有趣的解决方案!谢谢