Я хочу проиндексировать вторую и последнюю строку массива numpy. У меня есть цикл, который постоянно добавляет новые строки:
arr2= is an array formatted like so [[300 240 22 22]]
, поэтому в приведенном выше примере x = 300 y = 240 w = 22 h= 22 * 1004 * эти числа обрабатываются в уравнении до тех пор, пока wm не будет иметь 2 числа, поэтому [200, 300] и hm также имеют 2 числа [200, 300], и оба не будут добавлены в конец arr (без созданияновые массивы, а скорее добавление к одному массиву. Таким образом, это будет выглядеть примерно так: постоянно добавляются новые строки (я не знаю, добавляет ли он новые строки или переопределяет старые значения):
----row [[301.77325 225.71806][366.08594 232.20958]]
----row [[301.54193 225.93848][365.76663 232.37358]]
---- [[300.9011 225.27153][365.21063 231.52242]]second to last appended
row
---- [[300.63205 223.20387][364.91928 229.46263]]last appended row
then there would be another row being appended this is just a snapshot
code:
arr=[] #shape is (0,)
for (x, y, w, h) in arr2:
wm=int(x + (w/2))
hm=int(y + (h/2))
arr.append([wm, hm])
simplified version:
arr=[]
for (x, w) in arr2:
wm=int(x + (w/2))
arr.append([wm])
Неупрощенный код создает массив формы (2,2) с типом d: float32.
column (wm) column(hm)
| |
| |
[[293.51373 323.4329 ] # second to last row
[247.77493 316.02783]]
[[292.9887 322.23425]
[247.24142 314.2921 ]]
Вот некоторые примеры методов индексации Iпробовал (вместе с массивом) (это две последние добавленные строки массива):
arr [[255.44836 280.92575] # I want to index this line-second to last appended row
[298.6107 285.75986]]
arr[-1] [298.6107 285.75986]
arr[-2] [255.44836 280.92575]
arr[-2][0] 255.44836
arr[:,0] [255.44836 298.6107 ]
arr[-1,:] [298.6107 285.75986]
arr[-2,0] 255.44836
arr[-2::2] [255.44836 280.92575]
arr [[255.35194 281.08353] # along with this line-last appended row
[298.45673 285.88693]]
arr[-1] [298.45673 285.88693]
arr[-2] [255.35194 281.08353]
arr[-2][0] 255.35194
arr[:,0] [255.35194 298.45673]
arr[-1,:] [298.45673 285.88693]
arr[-2,0] 255.35194
arr[-2::2] [255.35194 281.08353]
В других случаях, когда я пытаюсь проиндексировать вторую или последнюю строку, это показывает мне ошибку оси,что может быть проблемой (что добавление не добавляет новый рочто я пытаюсь индексировать, но переопределяет старые значения).Я не знаю.Поэтому я попытался переключить метод добавления с помощью: concatenate, vstack, pandas.Но это не помогло.Все, что я хочу сделать, это найти разницу между последней и второй добавленной строкой от второго столбца в элементе wm (в примере 280.92575-281.08353), а также то же самое с первым столбцом элемента wm (255.44836-255.35194).).Все различные методы индексации не извлекали вторую-последнюю строку только последнюю строку.Пожалуйста, дайте мне знать, если есть другой способ индексации второй и последней строки другим способом или есть другие методы индексации, которые я еще не пробовал.Извините, если это сбивает с толку, все еще овладеваю этим.Я могу попытаться устранить любую путаницу.Заранее спасибо!