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, которые терпят неудачу во многих тестовых случаях.