Исключение региона в массиве numpy - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть массив NumPy (dat) формы (n,3), где n обозначает количество строк, а три столбца представляют x (столбец 0), y (столбец 1) и z (столбец 2) координаты соответственно.

Я хочу ИСКЛЮЧИТЬ те строки в этом массиве, где значения x лежат между определенным пределом (xlow < x < xupp И , где лежат значения y между ylow < x < yupp И , где значения z лежат между zlow < x < zupp. У меня уже есть значения [xlow, xupp, ylow, yupp, zlow, zupp].

Я знаю, как найти область (строки), где выполняется условие исключения, используя:

mark = np.where( ( dat[:,0]>xlow & \
                   dat[:,0]<xupp )  & \
                 ( dat[:,1]>ylow & \
                   dat[:,1]<yupp ) & \
                 ( dat[:,2]>zlow & \
                   dat[:,2]<zupp ) )

Но я хочу, чтобы эти строки были исключены из моего нового массива. Как я могу сделать это в NumPy? Спасибо.

1 Ответ

0 голосов
/ 16 сентября 2018

Попробуйте взять отрицание условия внутри np.where (). Как это:

mark = np.where( ~( (dat[:,0]>xlow) & \
                    (dat[:,0]<xupp) & \
                    (dat[:,1]>ylow) & \
                    (dat[:,1]<yupp) & \
                    (dat[:,2]>zlow) & \
                    (dat[:,2]<zupp) ) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...