Вы, вероятно, неявно преобразуете свои сложные значения в обычные числа с плавающей точкой, записывая их в массив с плавающей точкой (ваш массив d).
>>> import numpy
>>> a = numpy.empty(shape=(2, 128), dtype=numpy.float32)
>>> b = 100*numpy.random.sample(128)+(100*numpy.random.sample(128)*1j)
>>> a.dtype
dtype('float32')
>>> b.dtype
dtype('complex128')
>>> a.shape
(2, 128)
>>> b.shape
(128,)
>>> a[0, :] = b
__main__:1: ComplexWarning: Casting complex values to real discards the imaginary part
Вы должны убедиться, что ваша матрица d создана со сложным типом d:1004 *
d = numpy.empty(shape=..., dtype=t.dtype)