如何修复python中的“ numpy.ndarray”对象不可调用”错误?

时间:2019-08-13 01:23:41

标签: python numpy matplotlib-basemap

我刚刚开始学习Python。但是,有一个问题。

我尝试使用一些坐标点将其与曲线或直线连接。

或者...您可以简单地更改此代码吗?

first_coordinate

A_lon = np.array([126.393, 127.012, 127.545, 128.035, 128.544, 128.768, 129.239])
A_lat = np.array([37.277, 37.553, 37.343, 37.576, 37.486, 37.924, 37.795])

A_lon_new = np.linspace(A_lon.min(), A_lon.max(),500)

f = interp1d(A_lon, A_lat, kind='quadratic')
A_lat_new = f(A_lon_new)

A_x, A_y = map(A_lon, A_lat)
A_x1, A_y1 = map(A_lon_new, A_lat_new)


m.plot (A_x, A_y, "ko", markersize=5)

直线

m.plot(A_x, A_y, color='b', linestyle = '--', linewidth=1.5)

曲线_线

m.scatter (A_x1, A_y1, color='r', linestyle = '--', linewidth=1.5)

第二个坐标

B_lon = np.array([126.285, 127.314, 127.653, 128.214, 128.92, 129.057, 129.735])
B_lat = np.array([36.132, 35.847, 35.93, 36.406, 36.102, 36.4, 36.816])

B_lon_new = np.linspace(B_lon.min(), B_lon.max(),500)

f = interp1d(B_lon, B_lat, kind='quadratic')
B_lat_new = f(B_lon_new)

B_x, B_y= map(B_lon, B_lat)
B_x1, B_y1 = map(B_lon_new, B_lat_new)


m.plot (B_x, B_y, "ko", markersize=5)

直线

m.plot (B_x, B_y, color='b', linestyle = '--', linewidth=1.5)

曲线_线

m.plot(B_x1, B_y1, color='r', linestyle = '-', linewidth=1.5)

plt.show()

我遇到此错误:

    TypeError                                 Traceback (most recent call last)
<ipython-input-2-6e05a05d2dab> in <module>()
     76 A_lat_new = f(A_lon_new)
     77 
---> 78 A_x, A_y = map(A_lon, A_lat)
     79 A_x1, A_y1 = map(A_lon_new, A_lat_new)
     80 

TypeError: 'numpy.ndarray' object is not callable

1 个答案:

答案 0 :(得分:3)

看起来令人讨厌的代码行是

A_x, A_y = map(A_lon, A_lat)

map函数应用到某种列表或可迭代列表中。例如

map(lambda x: 2*x, [1, 2, 3])
# [2, 4, 6]

A_lon中的对象绝对是数组而不是函数。您是否正在尝试将这两个数组与zip之类的函数结合在一起?