Сравнение элементов одного и того же многомерного массива - PullRequest
0 голосов
/ 03 марта 2020

Итак, у меня есть многомерный массив в этом формате:

Cjk = [[81 51 31] [82 47 54] [34 55 64] [96 73 43]];

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

Я хочу этот вывод:

34 47 31  # these are the minimum values compared to each one values of the same index

Я пробовал некоторые методы, но они оказались безуспешными, потому что мне пришлось работать с I и J, потому что массив Cjk будет получать больше значений во времени, поэтому он должен быть масштабируемым

Ответы [ 3 ]

1 голос
/ 03 марта 2020

Вы можете сделать это,

In [21]: list(map(lambda x:min(x),zip(*Cjk)))
Out[21]: [34, 47, 31]
1 голос
/ 03 марта 2020

Вы хотите найти минимум в каждом столбце. Вы можете использовать zip здесь.

Cjk = [[81 51 31] [82 47 54] [34 55 64] [96 73 43]]
min_cols=[min(lst) for lst in zip(*Cjk)]
# [34, 47, 31]
0 голосов
/ 03 марта 2020

Вы можете импортировать numpy и находить минимумы и максимумы в строках и столбцах матрицы, используя параметр оси. Как в этом примере:

import numpy as np

>>> x = -np.matrix(np.arange(12).reshape((3,4))); x

matrix([[  0,  -1,  -2,  -3],
        [ -4,  -5,  -6,  -7],
        [ -8,  -9, -10, -11]])

>>> x.min()

-11
>>> x.min(0)

matrix([[ -8,  -9, -10, -11]])

>>> x.min(1)
matrix([[ -3],
        [ -7],
        [-11]])

Проверьте это https://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.min.html

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