Numpy .A1 数组并不总是存在

Numpy .A1 array not always present

如下代码

samplePoints=(rand(samples,variables)-0.5)*10
output=numpy.zeros((samples,1))
for i in range(0,samples):
    output[i,0]=eq(samplePoints[i,:].T)
print output.A1;

在最后一行出现 AttributeError 崩溃:'numpy.ndarray' object has no attribute 'A1'

另一方面是下面的代码

samplePoints=(rand(samples,variables)-0.5)*10
output=numpy.zeros((samples,1))
for i in range(0,samples):
    output[i,0]=eq(samplePoints[i,:].T)
output=output+rand(samples,1)
print output.A1;

没有。唯一添加的是 +rand(sample,1)。 为什么不是每个 numpy 数组都有 A1 字段???我怎样才能获得数组的一维扁平化版本,使其适用于所有类型的 numpy 数组?

您的示例不完整,所以我无法 运行 它们并重现问题。显然,崩溃的例子创建了一个常规的 numpy 数组,它没有 A1 属性,而有效的例子创建了一个矩阵 returns 的 numpy matrix. The A1 attribute 一个扁平的 numpy 数组。

您可以写 np.ravel(output) 而不是使用 output.A1。这应该适用于常规的 numpy 数组和 numpy 矩阵。