Что такое цель и утилита ...?
Цель:
Подпись-вызов помогает либо проходить через обработанный тип экземпляра, как показано здесь:
>>> np.array( np.mat( '1 2; 3 4' ), # array-to-"process"
subok = True # FLAG True to ["pass-through"] the type
)
matrix([[1, 2],
[3, 4]]) # RESULT is indeed the instance of matrix
Наоборот, если не желает "Повторно обработав "и .shape
, и создав один и тот же класс, используя subok = False
, полученный *_alike()
не получит тот же класс, как" пример "процесса, который был дан для создания *_alike()
-генерированный вывод:
type( np.mat( '1 2;3 4' ) ) # <class 'numpy.matrixlib.defmatrix.matrix'>
type( np.array( np.mat( '1 2;3 4' ) ) ) # <type 'numpy.ndarray'>
type( np.zeros_like( np.mat( '1 2;3 4' ) ) ) # <class 'numpy.matrixlib.defmatrix.matrix'>
>>> np.zeros_like( np.mat( '1 2;3 4' ), subok = True )
matrix([[0, 0],
[0, 0]])
>>> np.zeros_like( np.mat( '1 2;3 4' ), subok = False )
array([[0, 0],
[0, 0]])
Утилита:
Эти subok
-флаги распространены в других numpy
функциях (не только *_like()
-s, такжев np.array( ... )
), для той же самой цели, поскольку она довольно полезна для интеллектуальных конструкций кода с модифицированным типом, где требуемый тип продукта известен «генерирующему» процессу, и результаты, таким образом, достигаются без чрезмерногосвязанные накладные расходы, если в противном случае потребовались последующие модификации.