NUMPY: Что делает np.empty (()) в двумерных массивах? - PullRequest
0 голосов
/ 25 января 2020

Что на самом деле делает np.empty (())?

Например, если я хочу создать пустой массив из 5 строк и 5 столбцов, я бы использовал np.empty((5,5)). Это дает случайный вывод, такой как:

[[0.57061489 0.57883359 0.5746548  0.57756612 0.57587218]
 [0.62539185 0.62139618 0.62313292 0.62097162 0.62221129]
 [0.70896235 0.57620393 0.73345734 0.53891594 0.75331689]
 [0.72820808 0.56994986 0.78769608 0.47609684 0.8334235 ]
 [0.62921645 0.70930812 0.6068869  0.74827839 0.55498477]]

1. Почему он дает случайный вывод между 0-1, а не генерирует значения из памяти, как 7.6662e-301, 5.3767e-301 ..... et c?

Если я снова запустите код np.empty((5,5)) в новом файле, я получу тот же вывод, что и выше. Почему это?

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Из любопытства я заглянул в кодовую базу numpy, и именно так определяется функция empty в файле numpy.numpy.matlib.py (удалены комментарии из кода) -

def empty(shape, dtype=None, order='C'):
    return ndarray.__new__(matrix, shape, dtype, order=order)

, где matrix сам по себе получается из numpy.matrixlab.defmatrix 1 . Теперь на этом моя кроличья нора закончилась. Я предполагал, что найду некоторую ссылку на создание новой матрицы, заполненной здесь случайными значениями на основе указанной формы. Это не отвечает на ваш вопрос, но если кто-то будет следовать этой теме (или, может быть, я буду в какой-то момент), я действительно хотел бы выяснить происхождение этого «произвольного» значения.

0 голосов
/ 25 января 2020

Массив неинициализированных (произвольно) данных заданной формы, типа d и порядка

...