Нужен ли numpy.asarray () здесь? - PullRequest
       0

Нужен ли numpy.asarray () здесь?

0 голосов
/ 16 апреля 2019

Я следую примеру в книге Франсуа Шоле «Глубокое обучение на Python».Есть пример (стр. 70), где они преобразуют массив int в массив float32

Соответствующие строки:

from keras.datasets import imdb
(tr_data, tr_labels), (ts_data, ts_labels) = imdb.load_data(num_words=10000)
...
import numpy as np
y_train = np.asarray(tr_labels).astype('float32')

tr_labels - это просто массив целых чисел

array([1, 0, 0, ..., 0, 1, 0])

y_train - это массив float32

array([1., 0., 0., ..., 0., 1., 0.], dtype=float32)

Но зачем нам вызывать np.asarray (), когда кажется, что это просто помогает

y_train = tr_labels.astype('float32')

Просто интересноесли numpy.asarray () выполняет дополнительную обработку данных, о которой я не знаю.

1 Ответ

0 голосов
/ 16 апреля 2019

Нет, это не обязательно.

np.asarray иногда полезно, если вы не уверены, что тип данных (или если он может измениться), и он не будет копировать в новый массив, если входные данные уже ndarray, поэтому это не должно быть замедлением, если tr_labels уже является массивом. Аналогичным образом, если вы хотите разрешить подклассы ndarray, вы можете использовать np.asanyarray, который пройдет через любой подкласс ndarray (например, разреженные массивы и т. Д.) Без дополнительного копирования. Это всего лишь два примера множества функций создания массива, которые numpy предоставляет из существующих данных. Часто бывает несколько правильных ответов, но иногда один может быть более эффективным (с точки зрения памяти), чем другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...