use*_*910 6 python arrays numpy
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)
Run Code Online (Sandbox Code Playgroud)
我得到一个'数据'列表,它是:
[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)]
Run Code Online (Sandbox Code Playgroud)
我用
new_array = numpy.vstack([datas])
Run Code Online (Sandbox Code Playgroud)
获取new_array:
[[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)]]
Run Code Online (Sandbox Code Playgroud)
但我真的更喜欢一个是:
(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)
Run Code Online (Sandbox Code Playgroud)
我应该使用哪种功能?
谢谢.
以下对我有用,所以要么元素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]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4800 次 |
| 最近记录: |