假设给出以下数组:
a = array([1,3,5]) b = array([2,4,6]) 一个人如何有效地将它们交织在一起,以便获得这样的第三个数组
c = array([1,2,3,4,5,6]) 可以假设length(a)==length(b)。 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我需要执行此操作,但要沿任意轴使用多维数组。这是实现此目的的快速通用功能。它具有与相同的调用签名np.concatenate,除了所有输入数组必须具有完全相同的形状。
import numpy as np
def interleave(arrays, axis=0, out=None): shape = list(np.asanyarray(arrays[0]).shape) if axis < 0: axis += len(shape) assert 0 <= axis < len(shape), "'axis' is out of bounds" if out is not None: out = out.reshape(shape[:axis+1] + [len(arrays)] + shape[axis+1:]) shape[axis] = -1 return np.stack(arrays, axis=axis+1, out=out).reshape(shape)