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 矩阵。
如下代码
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 矩阵。