Numpy .A1数组并不总是存在

时间:2015-01-16 13:05:48

标签: python numpy scipy

以下代码

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'对象没有属性'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(样本,1)。 为什么不是每个numpy数组都有一个A1字段?我怎样才能获得阵列的一维扁平版本,使其适用于所有类型的numpy数组?

1 个答案:

答案 0 :(得分:2)

您的示例不完整,因此我无法运行它们并重现问题。显然,崩溃的示例会创建一个常规的numpy数组,该数组没有A1属性,而有效的示例会创建一个numpy matrix。矩阵的A1 attribute返回一个扁平的numpy数组。

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