Удалить строку массива, когда элемент не соответствует условиям - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть двумерный массив с x строками и 3 столбцами, в котором есть условие для каждого столбца. Как удалить строку, если один из элементов не удовлетворяет ограничениям

For example:
5<[:,0]<10
5<[:,1]<10
1<[:,2]<3

[[1, 2, 3 ],
 [4, 5, 6],
 [7, 8, 9],
 [9, 9, 1]]

Result should be
[[9,9,1]]

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Выражение ниже получает только строки, соответствующие условиям.

new = arr[(arr >= [5,5,1]).all(1) & (arr < [10,10,3]).all(1)]

Чтобы получить ожидаемый результат, вам нужно изменить условие на >=, потому что 1 не больше 1:)

0 голосов
/ 06 ноября 2019
def comply(row):
    if row[0] > 5 and row[0] < 10 and row[1] > 5 and row[1] < 10 and row[2] > 1 and row[2] < 3:
        return True
    else:
        return False


result = []
A = [[1, 2, 3 ],
 [4, 5, 6],
 [7, 8, 9],
 [9, 9, 1]]

for row in A:
    if comply(row):
        result.append(row)

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