Что такое '& lt;' делая в этой строке ?: data + = dt & lt; б

Запуск программы с '& amp;' не делает программу демонами, она просто работает в фоновом режиме. Для создания «истинного демона» ваша программа должна выполнить шаги, описанные здесь здесь .

Если ваша программа написана на C, вы можете вызвать функцию daemon (), которая сделает это для вы. Тогда вы можете запустить свою программу даже без '& amp;' в конце, и он будет запущен как демон.

Другим вариантом является вызов вашей программы с помощью демона , который также должен выполнять задание.

- name: Start daemon
  shell: daemon -- myexeprogram arg1 arg2

3
задан kmario23 13 July 2018 в 19:33
поделиться

3 ответа

< с массивами numpy делает элементарное сравнение. Это означает, что он возвращает массив, где есть True, где условие истинно и False, если нет. Здесь нужна строка np.require, так что она фактически использует массивы NumPy. Вы можете отбросить np.require, если вы предварительно перепутали свои data и dt с np.array s.

Затем результат добавляется (по элементам) в числовой массив. В этом контексте True равен 1, а False равен нулю.

>>> dt < b  # which elements are smaller than b?
array([ True,  True, False, False, False])

>>> 0 + (dt  < b)  # boolean arrays in arithmetic operations with numbers
array([1, 1, 0, 0, 0])

Таким образом, он добавляет 1 к каждому элементу из data, где элемент из dt меньше 8.

6
ответ дан MSeifert 17 August 2018 в 12:15
поделиться

dt - это список:

In [50]: dt    = [6,7,8,9,10]
In [51]: dt < 8
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-51-3d06f93227f5> in <module>()
----> 1 dt < 8

TypeError: '<' not supported between instances of 'list' and 'int'

< (.__lt__) для списков не определен.

Но если один элемент сравнения является ndarray, то применяется определение numpy __lt__. dt превращается в массив, и он выполняет сравнение элементов по элементу.

In [52]: dt < np.array(8)
Out[52]: array([ True,  True, False, False, False])
In [53]: np.array(dt) < 8
Out[53]: array([ True,  True, False, False, False])

операции с массивом numpy также объясняют часть data +=:

In [54]: data  = [1,2,3,4,5]          # a list
In [55]: data + (dt < np.array(8))    # list=>array, and boolean array to integer array
Out[55]: array([2, 3, 3, 4, 5])
In [56]: data
Out[56]: [1, 2, 3, 4, 5]
In [57]: data += (dt < np.array(8))
In [58]: data
Out[58]: array([2, 3, 3, 4, 5])

Фактически Я немного удивлен тем, что с += data был изменен из списка в массив. Это означает, что data+=... реализовано как назначение:

data = data + (dt <np.array(8))

Обычно + для списка является конкатенацией:

In [61]: data += ['a','b','c']
In [62]: data
Out[62]: [1, 2, 3, 4, 5, 'a', 'b', 'c']
# equivalent of: data.extend(['a','b','c'])

Вы часто можете уйти с используя списки в контекстах массива, но лучше создавать массивы объектов, поэтому вы получаете эти неявные, а иногда и неожиданные конверсии.

2
ответ дан hpaulj 17 August 2018 в 12:15
поделиться

Это эквивалент (или краткое или удобное обозначение) для эквивалентной функции: numpy.less()

In [116]: arr1 = np.arange(8)
In [117]: scalar = 6.0

# comparison that generates a boolean mask
In [118]: arr1 < scalar
Out[118]: array([ True,  True,  True,  True,  True,  True, False, False])

# same operation as above 
In [119]: np.less(arr1, scalar)
Out[119]: array([ True,  True,  True,  True,  True,  True, False, False])

Посмотрим, как этот логический массив может быть добавлен к небулевому массиву в этом случае. Это возможно из-за типа принуждения

# sample array
In [120]: some_arr = np.array([1, 1, 1, 1, 1, 1, 1, 1])

# addition after type coercion 
In [122]: some_arr + (arr1 < scalar)
Out[122]: array([2, 2, 2, 2, 2, 2, 1, 1])

# same output achieved with `numpy.less()`
In [123]: some_arr + np.less(arr1, scalar)
Out[123]: array([2, 2, 2, 2, 2, 2, 1, 1])

Таким образом, тип принуждения происходит в булевом массиве, а затем выполняется добавление.

1
ответ дан kmario23 17 August 2018 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: