以下代码
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数组?
答案 0 :(得分:2)
您的示例不完整,因此我无法运行它们并重现问题。显然,崩溃的示例会创建一个常规的numpy数组,该数组没有A1
属性,而有效的示例会创建一个numpy matrix
。矩阵的A1
attribute返回一个扁平的numpy数组。
您可以编写output.A1
,而不是使用np.ravel(output)
。这应该适用于常规的numpy数组和numpy矩阵。