np.ndarray с периодическими граничными условиями

проблема

Навязыватьnp.ndarray периодические граничные условия, изложенные ниже

подробностиЗаверните индексацию питонаnp.ndarray вокруг границ вn-размерыЭто периодическое граничное условие, формирующееnторУпаковкатолько происходит в том случае, если возвращаемое значениескаляр (одна точка).Ломтики будет рассматриваться как нормальный и будетне быть завернутым

Пример и контрпример приведены ниже:

a = np.arange(27).reshape(3,3,3)
b = Periodic_Lattice(a) # A theoretical class

# example: returning a scalar that shouldn't be accessible
print b[3,3,3] == b[0,0,0] # returns a scalar so invokes wrapping condition 
try: a[3,3,3] # the value is out of bounds in the original np.ndarray
except: print 'error'

# counter example: returning a slice
try: b[3,3] # this returns a slice and so shouldn't invoke the wrap
except: print 'error'

который должен дать вывод:

True
error
error

Я ожидаю, что я должен быть перегружен__getitem__ а также__setitem__ вnp.ndarray но как поступить с этим не совсем понятно, и есть много реализаций SO, которые терпят неудачу во многих тестовых случаях.

Ответы на вопрос(1)

Ваш ответ на вопрос