ValueError:所需数组的深度太小的对象

时间:2016-08-30 16:31:16

标签: python-2.7 numpy

我已经搜索过并发现这可能是关于类型的问题。但我尝试使用astype强制数组浮动,但没有成功。这必须是一个简单的错误,但不是初学者。 关于问题:我试图在所有麦克风的信号之外形成空间相关矩阵。

 R_a[k][l] = np.correlate(self.mic_list[k].delayed_signal,self.mic_list[l].delayed_signal)

这个类有一个mic_list,它是一个mic列表,这是另一个有这个方法的类

def add_delayed_signal (self, delayed_signal):
    self.delayed_signal = delayed_signal

先谢谢你。

1 个答案:

答案 0 :(得分:0)

我猜测R_a是一个二维数组。 np.correlate做的是计算两个信号之间的cross-correlation,并给出一个向量作为结果(而不是标量)。

您正在寻找的内容可能是np.covnp.corrcoef。这些也是获得所需结果的矢量化方法。

例如:

>>> x = np.random.randn(10)
>>> y = np.random.randn(10)
>>> X = np.vstack((x, y))
>>> X
array([[ 1.45841294, -0.16430013, -0.20782822,  0.08979425, -1.38337166,
         0.36488053, -2.57135737,  0.81215918, -0.54081983,  0.30421112],
       [-0.79416305,  1.14511318, -0.4962483 , -0.42647021, -0.59925241,
        -0.45612051, -0.02566026, -1.7668091 , -1.63098627,  0.3761437 ]])
>>> np.cov(X)    
array([[ 1.28563113, -0.20563105],
       [-0.20563105,  0.74178773]])

这是你正在寻找的吗?