Нарезка многомерного массива NumPy с условием IF - PullRequest
0 голосов
/ 20 октября 2018

Я новичок в python и пытаюсь написать функцию для нарезки многомерного массива Numpy.Существует несколько требований:

  1. возвращает элемент массива a, если оба значения i и j не являются значениями None,
  2. возвращает строку i массива a, если i не является значением None, ноj равен None.
  3. возвращает столбец j массива a, если j не является значением None, но i равен None.

-

def function(a,j,i):
    if i is not None and j is not None:
        return a
    elif i is not None and j is None:
        return a[i-1]
    elif i is None and j is not None:
        return a[:,j-1]

I'mДелая это прямо сейчас, но получил ошибку говорит ValueError: Истинное значение массива с более чем одним элементом неоднозначно.Используйте a.any () или a.all ().Как мне исправить эту проблему?

1 Ответ

0 голосов
/ 21 октября 2018

Это сработало для меня, но вы, вероятно, можете просто сделать это:

def function(a,j,i):
    return a[i, j] # None is treated as : in np, so no need to filter for it.

Это получит то, что вы хотели ..

Кроме того, в вашей логике есть ошибка:

if i is not None and j is not None:
    return a

Вы имеете в виду

if i is None and j is None:
    return a
...