Вы можете использовать np.in1d
с np.nonzero
-
np.nonzero(np.in1d(A,B))[0]
Вы также можете использовать np.searchsorted
, если вы хотите сохранить порядок -
np.searchsorted(A,B)
Для общего случая, когда A
& amp; B
- несортированные массивы, вы можете ввести параметр sorter
в np.searchsorted
, например:
sort_idx = A.argsort()
out = sort_idx[np.searchsorted(A,B,sorter = sort_idx)]
Я бы добавил в свою любимую broadcasting
тоже в миксе, чтобы решить общий случай -
np.nonzero(B[:,None] == A)[1]
Прогон образца -
In [125]: A
Out[125]: array([ 7, 5, 1, 6, 10, 9, 8])
In [126]: B
Out[126]: array([ 1, 10, 7])
In [127]: sort_idx = A.argsort()
In [128]: sort_idx[np.searchsorted(A,B,sorter = sort_idx)]
Out[128]: array([2, 4, 0])
In [129]: np.nonzero(B[:,None] == A)[1]
Out[129]: array([2, 4, 0])
Основное различие для файлов конфигурации оболочки - то, что некоторые только читаются оболочками "входа в систему" (например, когда Вы входите в систему от другого хоста или входа в систему в текстовой консоли локальной машины Unix). они - те названные, скажем, .login
или .profile
или .zlogin
(в зависимости от которой оболочки Вы используете).
Затем у Вас есть файлы конфигурации, которые прочитаны "интерактивными" оболочками (как в, подключенные к терминалу (или псевдотерминал в случае, скажем, эмулятора терминала, работающего под системой управления окнами). это, те с именами как .bashrc
, .tcshrc
, .zshrc
, и т.д.
bash
усложняют, это в том .bashrc
только считано оболочкой, это и интерактивное и невход в систему , таким образом, Вы найдете, что большинство людей заканчивает тем, что говорило их .bash_profile
также читать .bashrc
с чем-то как [1 122]
[[ -r ~/.bashrc ]] && . ~/.bashrc
, Другие оболочки ведут себя по-другому - например, с [1 111], .zshrc
всегда читается из интерактивной оболочки, является ли это входом в систему один или нет.
страница руководства для удара объясняет обстоятельства, при которых читается каждый файл. Да, поведение обычно последовательно между машинами.
.profile
просто имя файла сценария входа в систему, первоначально используемое [1 114]. bash
, будучи обычно назад совместимым с [1 116], будет читать .profile
, если Вы будете существовать.
Я нашел, что информация о .bashrc и .bash_profile здесь подвела итог его:
.bash_profile выполняется, когда Вы входите в систему. Наполните Вас помещенный, там мог бы быть Ваш ПУТЬ и другие важные переменные среды.
.bashrc используется для не, входят в оболочки. Я не уверен, что это означает. Я знаю, что Redhat выполняет его каждый раз, Вы запускаете другую оболочку (su этому пользователю, или просто называющий удар снова) Вы могли бы хотеть поместить псевдонимы там, но снова я не уверен, что это означает. Я просто игнорирую его сам.
.profile является эквивалентом .bash_profile для корня. Я думаю, что имя изменилось для разрешения другим оболочкам (csh, sh, tcsh) используют его также. (Вам не нужен тот как пользователю)
существует также .bash_logout, который выполняется в, да хорошее предположение... выходит из системы. Вы могли бы хотеть остановить deamons или даже сделать немного обслуживания. Можно также добавить "ясный" там, если Вы хотите очистить экран, когда Вы выходите из системы.
Также существует полное, следуют каждому из файлов конфигураций здесь
, Это, вероятно, даже distro.-иждивенец, не, все дистрибутивы принимают решение иметь каждую конфигурацию с ними, и некоторые имеют еще больше. Но когда у них есть то же имя, они обычно включают то же содержание.
Это просто. Это объяснено в man bash
:
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
оболочки Входа в систему - те, которые читаются тот, в который Вы входите (так, они не выполняются при простом запуске xterm, например). Существуют другие способы войти в систему. Например, с помощью X менеджеров по оформлению. У этого есть другие способы считать и экспортировать переменные среды во время входа в систему.
Также читает INVOCATION
глава в руководстве. Это говорит "Следующие параграфы, описывают, как удар выполняет свои файлы запуска". , я думаю, что это - место - на :) Это объясняет, что "интерактивная" оболочка также.
Bash не знает приблизительно .environment
. Я подозреваю, что это - файл Вашего распределения, для установки переменных среды, независимых от оболочки, которой Вы управляете.
Хорошее место для взгляда на является страницей справочника удара. Здесь интерактивная версия. Ищите раздел "INVOCATION".
Классически, ~/.profile
используется Оболочкой Bourne и вероятно поддерживается Bash как мера прежней версии. Снова, ~/.login
и ~/.cshrc
использовались Оболочкой C - я не уверен, что Bash использует их вообще.
Эти ~/.bash_profile
использовался бы однажды, при входе в систему. ~/.bashrc
сценарий прочитан каждый раз, когда оболочка запускается. Это походит /.cshrc
для Оболочки C.
Одно последствие - то, что материал в ~/.bashrc
должен быть максимально легок (минимальный) для сокращения издержек при запуске оболочки невхода в систему.
я верю ~/.environment
, файл является файлом совместимости для Korn Shell.