У объекта «numpy.ndarray» нет атрибута «append». Данная ошибка обычно возникает, когда вы пытаетесь добавить одно или несколько значений в конец массива NumPy с помощью функции append().
У numpy.ndarray нет атрибута добавления. Доступ к атрибуту, не существующему в конкретном объекте, приведет к ошибке.

Воспроизведение ошибки
|
1 2 3 4 5 6 7 |
import numpy as np arr = np.array([11, 21, 19, 46]) arr.append(29) print(arr) |
Выход
|
1 |
AttributeError: 'numpy.ndarray' object has no attribute 'append' |
Как исправить
Вот способы исправления AttributeError: объект ‘numpy.ndarray’ не имеет атрибута ‘append’.
Способ 1: использование функции np.append()
Чтобы добавить элементы в массив numpy, вы можете использовать функцию np.append().
|
1 2 3 4 5 6 |
import numpy as np arr = np.array([11, 21, 19, 46]) arr = np.append(arr, 29) print(arr) |
Выход
|
1 |
[11 21 19 46 29] |
numpy.ndarray — это класс NumPy, который представляет многомерный массив элементов. Это эффективный контейнер для больших массивов однородных данных, что означает, что данные имеют один и тот же тип, например целые числа или значения с плавающей запятой.
Способ 2: с помощью функции np.concatenate()
Функция np.concatenate() объединяет последовательность массивов вдоль существующей оси.
|
1 2 3 4 5 6 |
import numpy as np arr = np.array([11, 21, 19, 46]) arr = np.concatenate([arr, [29]]) print(arr) |
Выход
|
1 |
[11 21 19 46 29] |
Способ 3: с функцией np.insert()
Функция np.insert() вставляет значения вдоль заданной оси перед заданными индексами.
|
1 2 3 4 5 6 |
import numpy as np arr = np.array([11, 21, 19, 46]) arr = np.insert(arr, arr.size, 29) print(arr) |
Выход
|
1 |
[11 21 19 46 29] |
Способ 4: применение индексации
Вы можете использовать индексацию, чтобы присвоить новое значение следующему доступному элементу.
|
1 2 3 4 5 6 7 |
import numpy as np arr = np.array([11, 21, 19, 46]) arr = np.append(arr, 0) arr[-1] = 29 print(arr) |
Выход
|
1 |
[11 21 19 46 29] |
Способ 5: использование функции np.size()
Функция numpy.resize() изменяет размер массива, в котором мы освободим место для еще одного массива, а затем добавим его с помощью индексации.
|
1 2 3 4 5 6 7 |
import numpy as np arr = np.array([11, 21, 19, 46]) arr = np.resize(arr, arr.size+1) arr[-1] = 29 print(arr) |
Выход
|
1 |
[11 21 19 46 29] |
