Добавление массива numpy без выравнивания

#python #arrays #numpy #append

#python #массивы #numpy #добавить

Вопрос:

Допустим, у меня есть три таких массива:

Total = [], A = [1,2,3] и B = [4,5,6] .

Когда я использую Total = np.append(Total,A) , это дает мне: [1,2,3]

И когда я использую Total = np.append(Total,B) , это дает мне: [1,2,3,4,5,6]

Что я хочу после второго добавления, так это: Total = [[1,2,3],[4,5,6]] .

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

1. np.vstack((A, B)) Делает то, что вам нужно?

2. @JonClements Нет, потому что размеры не совпадают.

3. Ну, что они делают в вашем примере? Не могли бы вы предоставить реальный вариант использования, в котором они этого не делают, и какой результат вы ожидаете от 2D-массива, размеры которого не совпадают?

4. Похоже, что вы здесь не используете numpy и просто хотите total = [A, B] ?

5. Не используйте np.appwnd , не прочитав его документы. А еще лучше не используйте его вообще. И не stack делайте это итеративно. vstack список всех элементов один раз.

Ответ №1:

Почему бы просто не сложить их?

 A = [1,2,3]
B = [4,5,6]

Total = np.vstack((A,B))    
print(Total)  
  

ВЫВОД:

 [[1 2 3]
 [4 5 6]]
  

или

просто добавьте списки:

 T = [A]   [B]    
print(T)
  

ВЫВОД:

 [[1, 2, 3], [4, 5, 6]]
  

Ответ №2:

Вы можете сделать это несколькими способами:

 import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

np.vstack([a, b])
np.stack([a, b], axis=0)
np.c_[a, b].T
np.concatenate([a[np.newaxis], b[np.newaxis]])