不扩充维度地将list转换为numpy 数组

本文介绍了如何使用numpy将内存中的字节流转换为numpy数组,并确保形状正确,避免维度增加。重点讲述了音频数据处理中,如何避免额外维度问题,最终实现[25,1323]形状的数组拼接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

line2 从内存中读取字节流并转换为numpy array, shape是[1.1323], None 是增加一个维度, 然后append到audio list里

line3 把list audio转换为[25,1323]的numpy array,注意这里不能用np.array(audio),这样做的结果是[25,1,1323],因为这样会增加一个维度,不是想要的。

import numpy as np
audio = []
audio.append(np.frombuffer(data, dtype=np.int16)[None, :])  # [1,1323]
out_data = np.concatenate(audio)  # [25,1323]  
          

注:虽然torch也有torch.Tensor(audio)的方式把list转换为tensor然后再处理,但这样是从内存到GPU,很慢,官方文档说的extreamely slow, 建议先像下面的代码一样通过np.concatenate(list)转换为numpy array后,再使用torch.from_numpy(array)转为tensor使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值