np.ndarray com condições de limite periódico

Problema

Obrigarnp.ndarray condições de contorno periódicas, conforme estabelecido abaixo

DetalhesEmbrulhe a indexação de um pythonnp.ndarray em torno dos limites emn-dimensõesEssa é uma condição de contorno periódica que forma umntridimensionalInvólucro ocorre no caso em que o valor retornado éescalar (um único ponto).Fatias será tratado como normal e seránão ser embrulhado

Um exemplo e um contra-exemplo são dados abaixo:

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'

que deve dar a saída:

True
error
error

Prevejo que eu deveria estar sobrecarregando__getitem__ e__setitem__ dentronp.ndarray mas como proceder com isso não está totalmente claro e há muitas implementações no SO que falham em muitos casos de teste.

questionAnswers(1)

yourAnswerToTheQuestion