我正在遵循Francois Chollet所著的《用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()是否进行了一些我不知道的其他数据处理。
答案 0 :(得分:0)
否,没有必要。
np.asarray
有时很有用,如果您不确定数据类型是什么(或是否可以更改),并且如果输入已经是{{1 }},因此如果ndarray
已经是一个数组,就不应该放慢速度。同样,如果您想允许tr_labels
的子类,则可以使用ndarray
,它将通过np.asanyarray
的任何子类(例如稀疏数组等)进行传递,而无需额外复制。这些只是现有数据中许多array creation functions numpy提供的两个示例。通常有多个正确答案,但有时一个答案可能比另一个答案更有效(在内存方面)。