如何将数组设置为float32数据类型(需要与append兼容)?

时间:2014-12-06 09:51:12

标签: python arrays numpy

我遇到浮点数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

1 个答案:

答案 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文档或开始新问题;)