gpt4 book ai didi

python:numpy列表到数组和vstack

转载 作者:太空狗 更新时间:2023-10-30 00:11:20 25 4
gpt4 key购买 nike

from scipy.io.wavfile import read
filepath = glob.glob('*.wav')
rates = []
datas = []
for fp in filepath:
rate, data = read(fp)
rates.append(rate)
datas.append(data)

我得到一个“数据”列表,它是:

[array([0, 0, 0, ..., 0, 0, 0], dtype=int16), array([0, 0, 0, ..., 0, 0, 1], dtype=int16), array([0, 0, 0, ..., 0, 0, 0], dtype=int16),..., array([0, 0, 0, ..., 0, 0, 0], dtype=int16)]

我用

new_array = numpy.vstack([datas])

获取新数组:

[[array([0, 0, 0, ..., 0, 0, 0], dtype=int16)
array([0, 0, 0, ..., 0, 0, 1], dtype=int16)
array([0, 0, 0, ..., 0, 0, 0], dtype=int16)
...
array([0, 0, 0, ..., 0, 0, 0], dtype=int16)]]

但我更喜欢的是:

(array([[ 0,  0,  0, ...,  0,  0,  0],
[ 0, 0, 0, ..., 0, 0, 1],
[ 0, 0, 0, ..., 0, 0, 0],
...,
[ 0, 0, 0, ..., 0, 0, 0]], dtype=int16)

我应该使用哪个函数?

谢谢。

最佳答案

以下对我有用,所以 datas 的元素不是像您的问题所暗示的那样是平面数组,潜在的行具有不同的长度(事实证明这是原因,请参阅评论),或者也许您使用的是 vstack 中的一维对象有问题的旧版本? (虽然我认为这不太可能)

In [14]: datas = [np.asarray([0, 0, 0, 0, 0, 0]), np.asarray([0, 0, 0, 0, 0, 1])]

In [15]: datas
Out[15]: [array([0, 0, 0, 0, 0, 0]), array([0, 0, 0, 0, 0, 1])]

In [16]: datas[0].shape
Out[16]: (6,)

In [17]: np.vstack(datas)
Out[17]:
array([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1]])

关于python:numpy列表到数组和vstack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com