Добавление нового элемента в трехмерный массив NUMPY - PullRequest
0 голосов
/ 04 мая 2020

У меня есть массив, форма которого равна (1,59,1). Он выглядит следующим образом:

[[[0.93169003]
  [0.96923472]
  [0.97881434]
  [0.99266784]
  [0.97358235]
  ............
  [0.83777312]
  [0.82086134]]]

I wi sh Я мог бы добавить новый элемент в конец, который равен [[0.86442673]], так что форма моего массива будет равна (1,60,1) и будет выглядеть следующим образом:

[[[0.93169003]
  [0.96923472]
  [0.97881434]
  [0.99266784]
  [0.97358235]
  ............
  [0.83777312]
  [0.82086134]
  [0.86442673]]]

Я пробовал с np. добавить, но у меня это не работает. Помогите пожалуйста

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

Из документации: «Обратите внимание, что добавление не выполняется на месте: выделяется и заполняется новый массив». Вы должны присвоить результат переменной, чтобы получить результат.

X_test = np.append(X_test ,pred_price)
0 голосов
/ 04 мая 2020

Это зависит от того, как вы используете numpy .insert

import numpy as np
d=np.random.randint(1,3,(2,5,3))
print(type(d),'\n',d.shape,'\n',d)

дает

<class 'numpy.ndarray'> 
 (2, 5, 3) 
 [[[1 1 2]
  [2 2 2]
  [1 1 2]
  [2 2 2]
  [2 1 1]]

 [[2 2 2]
  [2 2 2]
  [2 1 2]
  [1 1 1]
  [1 2 2]]]

затем

#numpy.insert(arr, obj, values, axis=None)[source]   obj is the index, axis is the dimension number
e=np.insert(d,1,5,0)
print(f'e\n{e}')
f=np.insert(d,1,5,1)
print(f'f\n{f}')
g=np.insert(d,1,5,2)
print(f'g\n{g}')

дает

e
[[[1 1 2]
  [2 2 2]
  [1 1 2]
  [2 2 2]
  [2 1 1]]

 [[5 5 5]
  [5 5 5]
  [5 5 5]
  [5 5 5]
  [5 5 5]]

 [[2 2 2]
  [2 2 2]
  [2 1 2]
  [1 1 1]
  [1 2 2]]]
f
[[[1 1 2]
  [5 5 5]
  [2 2 2]
  [1 1 2]
  [2 2 2]
  [2 1 1]]

 [[2 2 2]
  [5 5 5]
  [2 2 2]
  [2 1 2]
  [1 1 1]
  [1 2 2]]]
g
[[[1 5 1 2]
  [2 5 2 2]
  [1 5 1 2]
  [2 5 2 2]
  [2 5 1 1]]

 [[2 5 2 2]
  [2 5 2 2]
  [2 5 1 2]
  [1 5 1 1]
  [1 5 2 2]]]
0 голосов
/ 04 мая 2020

Попробуйте:

arr=np.append(arr,[[[0.86442673]]], axis=1)

Где arr - ваш входной массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...