我遇到浮点数32的数组问题。基本上,我已经定义了一个函数,我希望以数组形式生成一系列结果,在下面的代码中称为“Apoints”。所以我发现如果我使用array([],numpy.float32),那么使用append命令,它会说'numpy.ndarray'对象没有属性'append'。
有谁知道该怎么办?非常感谢!
###这是代码,Apoints产生64位,而不是32位。def f(N):
S = np.float32(0)
for n in arange(1,N+1,1,dtype=np.float32): #for upward summation
#print S
S = np.float32(np.float32(S) + np.float32(np.float32(1.0)/(np.float32((np.float32(n)*np.float32(n))))))
return np.float32(np.float32(abs(np.float32((np.float32(S)-np.float32(R)))))/np.float32(R))
Npoints = []
Apoints = []
hpoints = []
Npoints = arange(10,1000,20,dtype=np.float32)
for N in Npoints:
Apoints.append(np.float32(f(N)))
hpoints.append(np.float32(np.float32(1.0)/(np.float32(N))))
print Apoints
答案 0 :(得分:0)
'numpy.ndarray'对象没有属性'追加'
- >您正尝试在numpy数组上调用append(),但类型ndarray没有append方法。 对此的解释很简单:数组是不可变的,因此在numpy ndarray对象上添加一些附加内容没有多大意义。
追加到数组是numpy中直接提供的功能。这将创建一个包含所有值(旧的和附加的)的新数组。
a = numpy.array( [1,2,3] )
b = numpy.array( [4,5,6] )
c = numpy.append(a,b)
print c
这会生成以下输出:
array([1, 2, 3, 4, 5, 6])
Numpy.append(a,b)创建一个维度的新数组,该维数等于a的维度加上b的维度,以便新数组可以包含和 b的值。这个新数组是返回的,因此您可以将其保存为 c 。
有关进一步说明,请查阅numpy文档或开始新问题;)