
这是一个应该更快的实现。它将所有内容转换为的数组,
numpy.uint8并且不使用任何临时对象。
def join_struct_arrays(arrays): sizes = numpy.array([a.itemsize for a in arrays]) offsets = numpy.r_[0, sizes.cumsum()] n = len(arrays[0]) joint = numpy.empty((n, offsets[-1]), dtype=numpy.uint8) for a, size, offset in zip(arrays, sizes, offsets): joint[:,offset:offset+size] = a.view(numpy.uint8).reshape(n,size) dtype = sum((a.dtype.descr for a in arrays), []) return joint.ravel().view(dtype)
编辑 :简化了代码,避免了不必要的 *** 作
as_strided()。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)