Конкатенация массивов в Python - ошибка вывода - PullRequest
0 голосов
/ 15 февраля 2019

Я пишу программу для объединения двух пустых массивов и хочу, чтобы программа печатала сообщение для каждого возможного результата (горизонтального, вертикального или без объединения).У меня есть следующий код, и я не понимаю, почему даже когда первое условие (np.hstack) выполнено, оно продолжает оценивать последующие if и else операторы и неправильно печатает, что тамявляется горизонтальной конкатенацией (первое условие выполнено) и невозможна конкатенация.

import numpy as np
def fun1(a,b):
    if a.shape[0] == b.shape[0]:
        print("The horizontal concatenation is:", np.hstack((a,b)))
    if a.shape[1] == b.shape[1]:
        print("The vertical concatenation is:", np.vstack((a,b)))
    else:
        print("These arrays cannot be concatenated.")

a = np.floor(10*np.random.random((3,2)))
b = np.floor(10*np.random.random((3,4)))
fun1(a,b)

Вывод:

The horizontal concatenation is: [[5. 0. 1. 1. 3. 7.]
                                  [4. 1. 8. 3. 1. 9.]
                                  [9. 1. 5. 7. 0. 0.]]
These arrays cannot be concatenated.

1 Ответ

0 голосов
/ 15 февраля 2019

Вместо части else вам нужен третий оператор if с этим условием:

if a.shape[0] == b.shape[0]:
    print("The horizontal concatenation is:", np.hstack((a,b)))
if a.shape[1] == b.shape[1]:
    print("The vertical concatenation is:", np.vstack((a,b)))
if a.shape[0] != b.shape[0] and a.shape[1] != b.shape[1]:
    print("These arrays cannot be concatenated.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...