Как функция reshape reshape 2 выравнивает одномерный массив, сложенный горизонтально?

#python #arrays #numpy #reshape

#python #массивы #numpy #изменить форму

Вопрос:

У меня есть два изображения размером 100×100. Всякий раз, когда я сглаживаю их в одномерные массивы, складываю их после этого, я не получаю тот же результат по сравнению с тем, когда я складываю их, сглаживаю их. В чем разница между этими двумя подходами:

 First_image  = I1
Second_image = I2
I = np.hstack((I1.flatten(), I2.flatten()))
plt.imshow((I).reshape((100,2*100)));
  

введите описание изображения здесь

 First_image  = I1
Second_image = I2
I = np.hstack((I1, I2)).flatten()
plt.imshow((I).reshape((100,2*100)));
  

введите описание изображения здесь

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

1. Почему это должно быть так же?

Ответ №1:

Вы можете ясно увидеть разницу между ними по простому фрагменту кода, прикрепленному

  import numpy as np
 a = np.ones((2,5))
 b = np.zeros((2,5))
 I = np.hstack((a.flatten(), b.flatten()))
 print(I)
 I = np.hstack((a, b)).flatten()
 print(I)
  

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

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

1. Да, разница очень очевидна. Скорее я пытался понять, почему укладка 2 сплющенных массивов возвращает дублированное изображение при изменении его формы?