Я пытаюсь импортировать данные из Excel и создать массив pos
с 6 строками и двумя столбцами. Позже, когда я иду индексировать массив pos[0][1]
, я получаю ошибку: IndexError: index 1 is out of bounds for axis 0 with size 1.
Я посмотрел на форму моего массива, и он возвращает (6, 1, 2)
. Я ожидал получить (6, 2)
. Отдельные формы массивов, составляющие pos
, это (6, )
и (6, )
, которые я не очень понимаю, почему бы не (6, 1)
? Не совсем понимаю разницу между ними.
irmadata = pd.read_excel("DangerZone.xlsx")
irma_lats = irmadata["Average Latitude"].tolist()
irma_longs = irmadata["Average Longitude"].tolist()
shipdata = pd.read_excel("ShipPositions.xlsx")
ship_lats = shipdata["Latitude"].to_numpy() ## these are the (6, ) arrays
ship_longs = shipdata["Longitude"].to_numpy()
pos = np.array([[ship_lats], [ship_longs]], dtype = "d").T
extent = [-10, -90, 0, 50]
ax = plot.axes(projection = crs.PlateCarree())
ax.stock_img()
ax.add_feature(cf.COASTLINE)
ax.coastlines(resolution = "50m")
ax.set_title("Base Map")
ax.set_extent(extent)
ax.plot(irma_longs, irma_lats)
for i in range(len(ship_lats)):
lat = pos[i][0]
lon = pos[i][1] ## This is where my error occurs
ax.plot(lon, lat, 'o', label = "Ship " + str(i+1))
plot.show()
Очевидно, я мог бы просто индексировать pos[0][0][1]
, однако, я хотел бы знать, почему я получаю эту проблему. Я приехал из MATLAB, поэтому я полагаю, что многие мои проблемы будут связаны с различиями в том, как работает numpy и MATLAB, и, следовательно, любые советы также будут оценены!