Вы можете объединить функцию hstack с разрезанием исходной матрицы, чтобы вы могли сложить начало матрицы, нули и оставшуюся часть матрицы:
a = np.array([1, 2, 3, 4, 9, 8, 7, 6])
result = np.hstack((a[0:4], np.zeros(12), a[4:]))
Скорее всего, Ваши классы DataContract будут реализовывать эти IExtensibleDataObject
интерфейс, правильно? Это ответственно за ExtensionData
, поле - просто удаляет тот интерфейс, и необходимо быть в состоянии удалить эти ExtensionData
поля также из DataContracts.
Marc
Не ответ на вопрос, но возможно это помогает...
От MSDN http://msdn.microsoft.com/en-us/library/ms731083.aspx:
смещающаяся раунд функция может быть выключена, или путем установки ignoreExtensionDataObject к истинному в конструкторе DataContractSerializer или путем установки свойства IgnoreExtensionDataObject на истинный на ServiceBehaviorAttribute. Когда эта функция будет выключена, deserializer не заполнит свойство ExtensionData, и сериализатор не испустит содержание свойства.
ExtensionData является на самом деле функцией, которая должна быть встроена в тип для включения круглое смещение . Это всегда испускается DataContractSerializer. Один возможный способ подавление это поле использует более старый XmlSerializer путем украшения интерфейса контракта на обслуживание XmlSerializerFormatAttribute.
ExtensionData используется для поддержания совместимости через сервисы, которые могут совместно использовать контракты различных версий. Это может быть безопасно проигнорировано при передаче сообщений.
можно быть в состоянии избавиться от него при помощи чего-то другого, чем сериализатор DataContract (im размышление старой [сериализуемой] школы), но я мог быть неправым.