Векторизация для рутины с использованием numpy.roll

Это довольно просто:

  #import <MobileCoreServices/UTCoreTypes.h>

  NSMutableDictionary *item = [[NSMutableDictionary alloc] init];

  NSData *rtf = [attributedString dataFromRange:NSMakeRange(0, attributedString.length)
                             documentAttributes:@{NSDocumentTypeDocumentAttribute: NSRTFDTextDocumentType}
                                          error:nil];

  if (rtf) {
    [item setObject:rtf forKey:(id)kUTTypeFlatRTFD];
  }

  [item setObject:attributedString.string forKey:(id)kUTTypeUTF8PlainText];

  UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
  pasteboard.items = @[item];
0
задан Jack Moody 16 January 2019 в 18:28
поделиться

1 ответ

По сути, вы пытаетесь построить матрицу Теплица. Для этого есть функция:

import scipy.linalg
tlngth = 5
sp_array = scipy.linalg.toeplitz(np.roll(np.arange(tlngth - 1, -1, -1), 1),
                                 np.arange(tlngth))
#array([[0, 1, 2, 3, 4],
#       [4, 0, 1, 2, 3],
#       [3, 4, 0, 1, 2],
#       [2, 3, 4, 0, 1],
#       [1, 2, 3, 4, 0]])
0
ответ дан DYZ 16 January 2019 в 18:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: