广播4D numpy数组

马诺吉

我在将处理后的4D NumPy数组广播到4D数组时遇到问题。我已比较尺寸以检查尺寸是否有问题。我不明白怎么了。

train_path = files
train_file_names = os.listdir(train_path)
train_file_names.sort(key=lambda x: int(x.partition('.')[0]))
seg_num = 60
seg_len = 2
sample_num = len(df)
data = np.zeros((seg_num*100, 496, 64, 1))
label = np.zeros((seg_num * sample_num,))

for i, file_name in enumerate(train_file_names):
        sr, sound_file = wavfile.read(train_path + file_name)
        # print(train_path+file_name)
        length = sr * seg_len           # 5s segment
        range_high = len(sound_file) - length
        print(range_high, length)
        random_start = np.random.randint(range_high, size=seg_num)
        print("i", i)
        for j in range(seg_num):
            cur_wav = sound_file[random_start[j]:random_start[j] + length]
            cur_wav = cur_wav / 32768.0
            cur_spectro = preprocess_sound(cur_wav, sr)
            #print(cur_spectro.shape)
            cur_spectro = np.copy(np.expand_dims(cur_spectro, 3))
            print("cur_spectro",cur_spectro.shape)
            print("data", data.shape)
            print(data[i * seg_num + j, :, :, :].shape)
            data[i * seg_num + j, :, :, :] = cur_spectro
            label[i * seg_num + j] = df['class'][i]

输出量

88200 88200
i 0
cur_spectro (0, 496, 64, 1)
data (6000, 496, 64, 1)
(496, 64, 1)
<ipython-input-226-30eefc542ce4> in loading_data(files, df)
      29                 print("data", data.shape)
      30                 print(data[i * seg_num + j, :, :, :].shape)
 ---> 31                 data[i * seg_num + j, :, :, :] = cur_spectro
      32                 label[i * seg_num + j] = df['class'][i]
      33 ValueError: could not broadcast input array from shape (0,496,64,1) into shape (496,64,1)
Valdi_Bo

您的打印输出之一是cur_spectro (0, 496, 64, 1)

请参见以零均值表示的numpy形状是什么。它包含有关如何理解数组维之一为零时的情况的描述实际上,这意味着所讨论的数组为

因此,您似乎试图将一个空数组复制到一个非空数组中。由于在这种情况下这些数组无法对齐(广播),因此引发了异常。

正如您可以阅读注释之一一样,分析为什么preprocess_sound函数返回为空数组。

也许您应该在代码中添加一个检查cur_spectro的第一维大小是否为零,在这种情况下,您应该跳过有问题的指令,或者将一些“替代”内容复制到目标数组中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

过滤 4D numpy 数组

来自分类Dev

Numpy 4D数组到tf.data.dataset

来自分类Dev

将4d numpy数组重塑为2d数组,同时保留数组位置

来自分类Dev

如何在numpy中将4D数组重塑为2D数组

来自分类Dev

如何在Python / numpy中将3D数组结果保存到4D数组?

来自分类Dev

将3d数组组合成numpy中的4d数组

来自分类Dev

Numpy对称4D矩阵构造

来自分类Dev

优化4D Numpy阵列结构

来自分类Dev

Python-总和4D数组

来自分类Dev

数据帧到4D数组

来自分类Dev

Numpy广播数组

来自分类Dev

广播numpy数组值

来自分类Dev

如何在4D numpy数组上执行迭代2D操作

来自分类Dev

如何在4D numpy数组上执行迭代2D操作

来自分类Dev

numpy标准化4D数组的2D子集

来自分类Dev

在网格数据的4D numpy数组中查找不规则区域(纬度/经度)

来自分类Dev

使用numpy沿4D数组的第1轴平均n个元素

来自分类Dev

使用掩码沿 numpy 4D 数组删除全为零的空元素

来自分类Dev

如何将新列添加到 4d numpy 数组

来自分类Dev

将4D浮点数组从txt(字符串)文件转换为numpy浮点数组

来自分类Dev

使用另一个数组作为索引从 4D numpy 数组中读取元素

来自分类Dev

numpy:广播布尔数组ndarray

来自分类Dev

全零的Numpy padding 4D单位

来自分类Dev

点积两个4D Numpy阵列

来自分类Dev

使用 matplotlib 绘制 4D numpy 数据

来自分类Dev

如何基于3D数组的索引对4D数组中有条件选择的numpy数组条目求平均

来自分类Dev

无法保存4d数组int .txt文件

来自分类Dev

OpenCL-对4D数组进行按元素操作

来自分类Dev

C ++ 4D数组内存重新分配很慢