Как я могу получить значения списка, отвечающие определенным c условиям? - PullRequest
0 голосов
/ 05 августа 2020

Я вступительный член Python. Я реализую код для организации данных с помощью Python. Мне нужно извлечь значение, которое удовлетворяет только определенным условиям из многочисленных списков. Это кажется очень простым, но для меня это слишком сложно. solutions », каждая строка представляет« solutions [0] »,« solutions [1] »,« solutions [i] »... Кроме того,« coeff »также определяется как« numpy », а« coeff [0] ',' coeff [1] ',' coeff [i] '... сопоставляется с' solutions [0] ',' solutions [1] ',' solutions [i] '...

На данный момент я хочу найти определенные c 'solution [i]' и 'coeff [i]', где все элементы solutions [i] меньше 10 ^ -10, а все элементы coeff [ i] больше 10 ^ -3.

Интересно, есть ли подходящий код для извлечения массива списка в ситуации, которая удовлетворяет более чем одному условию. Я инициатор Python, извините, пожалуйста.

1 Ответ

0 голосов
/ 05 августа 2020

Это может быть выполнено с помощью расширенной индексации:

solution_valid = np.all(solutions < 10e-10, axis=1)
coeff_valid = np.all(coeff > 1e-3, axis=1)
both_valid = coeff_valid & solution_valid

valid_solutions = solutions[both_valid]
valid_coeffs = coeff[both_valid]

, но, возможно, вы имеете в виду, что абсолютное значение должно быть больше или ниже определенного порога?

solution_valid = np.all(np.abs(solutions) < 10e-10, axis=1)
coeff_valid = np.all(np.abs(coeff) > 1e-3, axis=1)
both_valid = coeff_valid & solution_valid

valid_solutions = solutions[both_valid]
valid_coeffs = coeff[both_valid]
...