设A为坐标集(例如array([[ 10., 110.],[200.,  90.],[210.,   0.], [-10.,  10.],[ 10., 110.]]) )。
如果subdivision(coordinate)是一个除法代码,给出两个结果-- subdivisionR, subdivisionL,那么subdivision(A)给出array([[ 10., 110.],[110.0, 99.47],[110.0, 4.54],[-10., 10.],[ 10., 110.]]), array([[110.0, 99.47],[200.,90.],[210., 0.],[110.0, 4.54],[110.0, 99.47]])。
由于我想要划分多边形,直到所有细分多边形到达最接近200的区域,并得到所有细分的坐标,我使用了以下代码;
n=1  
t=0  
r=0  
k=A  
while area(subdivision(k)[n-1])>200:
    for i in range(t,n):
        k.append(subdivision(k[i])[0])
        k.append(subdivision(k[i])[1])
    t=2**r
    r=r+1
    n=2**r然而,我得到警告- 'numpy.ndarray' object has no attribute 'append'。
我怎么才能解决这个问题?
发布于 2019-11-04 06:59:01
附加到numpy数组的语法与python列表的语法不同。你想要使用:
numpy.append(array, value, axis)所以,就像:
numpy.append(k, subdivision(k[i]), axis = 0)注轴是可选的,默认为1。“value”是一个numpy数组,而不是一个离散值。
https://stackoverflow.com/questions/58688403
复制相似问题