首页 > 解决方案 > 矩阵转置(连接每两个索引)

问题描述

我有一个这样的矩阵:

[99,e5],
[fc,9a],
[31,ac],
[d2,03]

该数据是来自 PCM 音频的字节,16 位,因此每 2 个字节是一个样本。我需要得到一个这样的数组:

[99,fc,31,d2],
[e5,9a,ac,03]

最终将此数组解释为

[99fc,31d2],
[e59a,ac03]

我已经完成了循环,但它非常慢,我需要良好的性能,因为它是实时音频数据。

=== 编辑 ===

也许我解释得不好

我有

[b'\xa5\x00', b'\xfc\x00', b'\xfb\x0b', b'\x87\x01']

我需要得到

[b'\xa5\xfc', b'\xfb\x87'],
[b'\x00\x00', b'\x0b\x01']

标签: pythonmatrixrotationbytetransform

解决方案


它仍然是一个 for 循环动作,但你可以这样做:

# First transpose
lst = np.array(lst).transpose()

# Now add elements
lst = [x+y for x,y in zip(lst[0::2], lst[1::2])]

推荐阅读