bFi*_*ig8 3 python arrays numpy
我有 4 个数组,我想将它们连接成一个交错的数组。我该怎么做呢?
>>> import numpy as np
>>> a = np.tile(0,(5,2))
>>> b = np.tile(1,(5,2))
>>> c = np.tile(2,(5,2))
>>> d = np.tile(3,(5,2))
>>> e = np.concatenate((a,b,c,d),axis=1)
>>> e
array([[0, 0, 1, 1, 2, 2, 3, 3],
[0, 0, 1, 1, 2, 2, 3, 3],
[0, 0, 1, 1, 2, 2, 3, 3],
[0, 0, 1, 1, 2, 2, 3, 3],
[0, 0, 1, 1, 2, 2, 3, 3]])
Run Code Online (Sandbox Code Playgroud)
这仅给出了串联。
然而,我想要的输出是:
>>> desired_output
array([[0, 1, 2, 3, 0, 1, 2, 3],
[0, 1, 2, 3, 0, 1, 2, 3],
[0, 1, 2, 3, 0, 1, 2, 3],
[0, 1, 2, 3, 0, 1, 2, 3],
[0, 1, 2, 3, 0, 1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)
我的意思是我知道我可以使用以下方法从 e 中选择交错列:
>>> f = e[:, ::2]
>>> array([[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)
但如何制作一个大数组呢?
使用np.dstack或np.stack沿着最后一个轴堆叠,为我们提供一个3D数组,然后重新整形回2D-
np.dstack([a,b,c,d]).reshape(a.shape[0],-1)
np.stack([a,b,c,d],axis=2).reshape(a.shape[0],-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1776 次 |
| 最近记录: |