структурированные массивы numpy добавляют и удаляют записи

#python #numpy #structured-array

Вопрос:

допустим, у нас есть этот структурированный массив :

 x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],
dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
 

как удалить первую строку :(‘Rex’, 9, 81.0) ?
и как добавить еще одну строку ??

Комментарии:

1. твой вопрос непонятен… 1. x[1:] ?

2. вы можете преобразовать его в список: X = список(x), и для удаления вы можете просто использовать del X[0], а для добавления вы можете использовать (добавить или вставить), а затем снова преобразовать его в массив numpy

3. спасибо за совет

Ответ №1:

Вы хотите этого: np.insert )

 >>> x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])

>>> y = np.array([('sam', 10, 100.0)],dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])

>>> np.insert(x[1:],0,y)
array([('sam', 10, 100.), ('Fido',  3,  27.)],
      dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f4')])
 

Или с np.append и np.delete :

 >>> x = np.delete(x, 1, axis=0)
>>> np.append(x, y, axis=0)
array([('Rex',  9,  81.), ('sam', 10, 100.)],
      dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f4')])
 

Комментарии:

1. да, это хочу, я хотел, спасибо

2. @NAS добро пожаловать, чувак 😉